(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[         0,          0]
NotebookDataLength[    395726,       9095]
NotebookOptionsPosition[    381169,       8641]
NotebookOutlinePosition[    381672,       8660]
CellTagsIndexPosition[    381629,       8657]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell["Conventions", "Section",
 CellChangeTimes->{{3.6032976509661293`*^9, 3.60329765549201*^9}, {
  3.603298322308634*^9, 3.603298323068405*^9}}],

Cell[CellGroupData[{

Cell["Definitions", "Subsection",
 CellChangeTimes->{{3.603298003824047*^9, 3.603298008881617*^9}}],

Cell[CellGroupData[{

Cell["Link abbreviations - \[OpenCurlyDoubleQuote]c\[CloseCurlyDoubleQuote] - \
calf, \[OpenCurlyDoubleQuote]t\[CloseCurlyDoubleQuote] - thigh, \
\[OpenCurlyDoubleQuote]T\[CloseCurlyDoubleQuote] - torso", "Item",
 CellChangeTimes->{{3.603297674068726*^9, 3.603297713459001*^9}, {
  3.603297763789094*^9, 3.603297763791307*^9}, {3.603297831685836*^9, 
  3.603297847353899*^9}}],

Cell["\<\
Joint abbreviations - \[OpenCurlyDoubleQuote]s\[CloseCurlyDoubleQuote] - \
stance, \[OpenCurlyDoubleQuote]ns\[CloseCurlyDoubleQuote] - nonstance, \
\[OpenCurlyDoubleQuote]a\[CloseCurlyDoubleQuote] - ankle, \
\[OpenCurlyDoubleQuote]k\[CloseCurlyDoubleQuote] - knee, \
\[OpenCurlyDoubleQuote]h\[CloseCurlyDoubleQuote] - hip\
\>", "Item",
 CellChangeTimes->{{3.603297847688663*^9, 3.603297863026155*^9}, {
  3.6032979888379517`*^9, 3.603297988840714*^9}}],

Cell["\<\
Body - combination of a joint and the body it drives, depends on build \
direction. In this case:\
\>", "Item",
 CellChangeTimes->{{3.603297989397773*^9, 3.603297996492037*^9}, {
  3.603298160275828*^9, 3.603298164482795*^9}, {3.6032982374352627`*^9, 
  3.603298289466217*^9}}],

Cell["\tstance ankle drives stance calf,", "Item",
 CellChangeTimes->{{3.603297989397773*^9, 3.603297996492037*^9}, {
  3.603298160275828*^9, 3.603298164482795*^9}, {3.6032982374352627`*^9, 
  3.6032982928736486`*^9}}],

Cell["\tstance knee drives stance thigh", "Item",
 CellChangeTimes->{{3.603297989397773*^9, 3.603297996492037*^9}, {
  3.603298160275828*^9, 3.603298164482795*^9}, {3.6032982374352627`*^9, 
  3.603298295254168*^9}}],

Cell["\tstance hip drives torso", "Item",
 CellChangeTimes->{{3.603297989397773*^9, 3.603297996492037*^9}, {
  3.603298160275828*^9, 3.603298164482795*^9}, {3.6032982374352627`*^9, 
  3.603298298537182*^9}}],

Cell["\tnonstance hip drives nonstance thigh", "Item",
 CellChangeTimes->{{3.603297989397773*^9, 3.603297996492037*^9}, {
  3.603298160275828*^9, 3.603298164482795*^9}, {3.6032982374352627`*^9, 
  3.603298301508543*^9}}],

Cell["\tnonstance knee drives calf", "Item",
 CellChangeTimes->{{3.603297989397773*^9, 3.603297996492037*^9}, {
  3.603298160275828*^9, 3.603298164482795*^9}, {3.6032982374352627`*^9, 
  3.603298301560902*^9}}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Nomenclature", "Subsection",
 CellChangeTimes->{{3.603297659274044*^9, 3.603297678241297*^9}}],

Cell[CellGroupData[{

Cell["\<\
okx - \"o\" - offset, parent joint to child joint in parent's frame, \"k\" - \
knee (where parent is the ankle), \"x\" - x-axis.\
\>", "Item",
 CellChangeTimes->{{3.603297674068726*^9, 3.603297713459001*^9}, {
   3.603297763789094*^9, 3.603297763791307*^9}, 3.603297831685836*^9, {
   3.6032978853214483`*^9, 3.603297890189817*^9}, {3.603297942240861*^9, 
   3.603297966782083*^9}, {3.603298181348205*^9, 3.603298208186644*^9}}],

Cell["\<\
\tBelow, \"ok\" would represent \"BA\", where \"B\" is the parent, \"A\" is \
the child\
\>", "Item",
 CellChangeTimes->{{3.603297674068726*^9, 3.603297713459001*^9}, {
   3.603297763789094*^9, 3.603297763791307*^9}, 3.603297831685836*^9, {
   3.6032978853214483`*^9, 3.603297890189817*^9}, {3.603297942240861*^9, 
   3.603297966782083*^9}, {3.603298181348205*^9, 3.603298217092778*^9}}],

Cell["\<\
Ltx - \[OpenCurlyDoubleQuote]L\[CloseCurlyDoubleQuote] - length (positive) \
for link, \[OpenCurlyDoubleQuote]t\[CloseCurlyDoubleQuote] - thigh, \
\[OpenCurlyDoubleQuote]x\[CloseCurlyDoubleQuote] - x-axis\
\>", "Item",
 CellChangeTimes->{{3.603297764501739*^9, 3.603297780012858*^9}, {
  3.603297893266774*^9, 3.603297900093638*^9}}],

Cell["\<\
ctx - \[OpenCurlyDoubleQuote]c\[CloseCurlyDoubleQuote] - offset for center of \
mass of joint,  parent to child. Below, it represents \
\[OpenCurlyDoubleQuote]BC\[CloseCurlyDoubleQuote]\
\>", "Item",
 CellChangeTimes->{{3.603297714954631*^9, 3.603297756093329*^9}, {
  3.603297814799488*^9, 3.603297824776819*^9}, {3.603297875002736*^9, 
  3.603297909464479*^9}, {3.603297978090049*^9, 3.603297983730686*^9}, {
  3.603298221276428*^9, 3.603298231744396*^9}, {3.603300986576065*^9, 
  3.6033009886084833`*^9}}],

Cell["mt - \[OpenCurlyDoubleQuote]m\[CloseCurlyDoubleQuote] - mass, \
\[OpenCurlyDoubleQuote]t\[CloseCurlyDoubleQuote] - thigh", "Item",
 CellChangeTimes->{{3.6032978754284983`*^9, 3.6032979147922897`*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 GraphicsBox[
  TagBox[RasterBox[CompressedData["
1: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
FM33FnkcY3nLHDhwYGtx3I1p06Z5He/Vq1fzGPfi+8ViRds5TxXfC1y+fLlX
PT/++CPnuypu3LhxIx/brbv66qt57jJDeNaoU6eO17a1a9fmMR/nuf2irQfE
n3aCKgGc5/xS9UuiPT/ztsKHrkGDBrnnV9u0aRM8BkCEQ/BYUKxbRwPN4zDs
qIPfG+P3x2Q9/F5Zecs8duzYFHHcDeERz7Hm3Bn8nlZKSsoaK9vPc7YIZxnm
XCGdO3fm6o3Nmzd/4GMbvj9r/POf/zT4OVl2drbXWBGG55Xh98zYRVwO59MX
fzYJJhol9wo5wTAPDuH51KaKz3cbFxa+N8njM//whz94yoPHAIh8CB4LiiVL
6E3Tu8oJdtXD+TxkPWlptLE8ZV133XV1i4qKMmJiYlyXXHLJRWMCFy9ebFme
SEb08d7hcs15qvh5WW5urks46oCPbdbJ791zzz1Gamoq992Mbt26XXR+sov+
85//uMfzZ2RkuPtovhbhUhf3PTnHiPk+KnPDDTcYx48fh8cAiHBKxweCxwLi
hx/oVfM9P86Bb0c9nF/RlDc4lfMvBlvW/Pnz3ZOhDBgwwOtY79ixg/NG5XLu
eyvbznmoOGf+tm3bvOrjuZ95ee+9954utc068/dq1qxpHDhwwP3dDRs2GPfd
d5/qXHU7ivMb8zwv9erVM8S+GOY5Qc3wHGlvvfUW+1T6b4bT1yEAIHhUcYHg
Mb989RW9aPYYz0lmRz2c757z3st61qyh/sGWJfo36/j+4U033eQ5zrVq1TJ4
8ZfHtzwkJiYu4/LN7zdzX4uX6Ojo0u+Pe3mMLvhpypQpPObe7Rx+3sZjPvid
7dLfLQvhVWPUqFGe/pvohx0Rfx51+hoEAJQPP9c9POaHYcOovdljPEe0XXXx
PGSmd9WWBFNG69atm/C4C9Hvco+jkHAuXl6mTZvW1Y62z549uzuXz/WY6+WF
5x2rXr16PdP3L/LYBXiM4u2COcaFhcf0L1682H1PlOfuvP/++91O5vuN7Ok7
77zT/e51jx493Pce4+LiXHJb8TvsF3846WMFp68/AED5UcQNeKwM+vShlmaP
vf02PWlXXTwvtOlZXCLPG61bhujHvMXzfPkiOzt7n+rd5PLCz+RycnL2q+r+
5ptvXjJ935/H5DnL+Td4zrTVwkecPziQ5fwFd40V1HP6mgMAWIsibsBjZdCh
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
xsT9+/d/zmVw306WK8fXC7e9wd/h8fhZWVmuK6+80vOdnTt3ut9j4xxcwdYt
+jMTpBNOn6YfHXJCwPC722Xl8ggR8BgAQBtF3AiZxxITE5dxmVWrVvWUJ+rh
VcbChQvfCKbMChUq1CkoKIgX/S6X+G9PuQcPHuT3nbOqV6/uzvHOnuR6nn76
ac93XnvtNXfd5bmnuXs3jZJO4Pt1TvkpUDp1omaB5PIIAfAYAEAbRdwImcfy
8/NjOD+Vubz+/ftzNQbf+wumzClTpnTh7c3jR+rUqeMu05x/qm3btk1cLte5
xYsXe7537bXXGkVFRS7RT9sebDzesoU+kk7Izqb9DjkhYMIklwc8BgAICkXc
CInHOM88lzdx4kRPWZdeeqlx4MABV3nu7SUkJCzmcm+//faLxnCMHDnSKz/g
6dOnN/BYkD/+8Y+e786cOZO/6urVq1eLYOpft44GSifk5dFxp/wUKGGSywMe
AwAEhSJu2OqxZs2aPbBv375xPG6Qx76bc1bJvL08Jj+YWNiwYcP7hJcKt2zZ
4imT7y0KX7n4HezS31+6dGlfru/111/3fP+RRx5xt+HQoUNBvfu1ZAm9KZ1Q
WEhJTjoqEDh3lqm98Q62BR4DAGijiBvaHisqKkrZvn37cF9s27ZtmPDW53Fx
cXM49xN7hsvh+4k8RlCWw+MUU1JSuC+W16RJkweCiYU//fTT+1x2165dPeU+
8cQTvMrYvXv36NLfv/CudI74zKtPKPp0rsLCwpRg3sXmuSbN/RueE8VpV/kj
THJ5wGMAgKCwymOBLpxjcdOmTUaHDh2Myy+/3L3973//e/f4CuENdljB/Pnz
Xw82Fp45c2ZvQUGBq0qVKp72cT59HoPfuXPnR3xtc/LkyVnctn/+85+ebT74
4AN3e2fMmKGdf/+rr+hFs8eaNqUHnHaVP8zvCTiYywMeAwAEhRUe434Uz7+i
olGjRsY//vEPt6/kNtdff73x0ksvcY55HufuzhMlPHa6PPNZcr4rLofnR5P1
8DhIHreRkZGxRbUd5w3h7UaMGOHZ7pZbbuFVRlJSkvb7X8OGUXuzx7p0oUed
dpU/wiSXBzwGAAgKRdzQ8pgut912mzFr1ix+pmbIhXP07tix49Py5FQ8duzY
VC6L89nLuv773/+6y1+zZk1/f9uKfuLJ5ORk12WXXebZduPGjZwHv0iU10in
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
2lezxZ8xXHmWMrAbpGNhIC2NLZQ6tHs3+95KXqdieUgda9OmjVG7CAi0x5tu
uom/8847fOfOnVr7KyoqOrFkyZJ+JucPVMdqCH4QuJC+//57fvPNN/MKFSpY
rmeNGjX4iy++CDut1VEUl8vL5jNOeeYrz0DH1q9fH9I9BRdffDHv0KEDnzp1
qtuuiARR+T8H6n0W7seGDRt81mXNmjW4X3niuLMjfX2jmNPFvU/bv3+/y1f/
+PXXX3ENSx26f6A6L5vXLxXn4T/++CNv2LBhUH21evXqvFu3bnzdunWyr+aL
P/0EVU3ykY45zIEDbJay/mumlbzq/mV2xvKwS8e8eeCBB7joS9rz/NatW8cY
nD8QHbtStN9klIOxQv369X2er3Llyrxu3br81ltv5W3btuXt27fnjRo14nXq
1NG+85UHvxljSb2P7IkCG2QbdumYyoUXXsjHjRuHa4Vn5BRxnsttrjfmL3mP
Hj3c58Szuvw3bJqeno309Y1i2uICDRw40Oc1xNyEnno7cO46om38hcIxnsb4
yqivXnXVVR59Ff8266v33HMPT0pKkn31gEk7JR1zmJQU9oPUIjE2m28lr1Ox
PHzp2Pnnn88xX2fGpEmT+Icffsh79uypzQXAxnm3KZQjxz3Lly8f5OP8/nTs
VmEvjwr4q6++espxNWvW1M6PZ8yCggL3vKZ3wpzn77//zl977TV+zTXXeJRR
sWJFbQ5D9I2SKLBBtuFLx7p06eL3vo4ZM0YbUz/99NP8P//5j09b8cwzz0DH
pJZVtbHeywoLC13nnXee+1wTJ050//vcc8+VY8Llkb6+UcxMPGdcccUV7us2
fvx4ftppp2n/xrxJZmamS382tPO8t4j2cAQFv/HGGz6fgfB8An3Lz8837avC
JvHXX3+dX3vttR5lnHHGGRz9GMnAbpCOhYEdO9g4qUVHj7I/reR1KpaHLx3D
XLXVBB35/PPPtTGR2q4wj5eamuoqKirK9vG+zEzHrhZdIicvL68Uz2zq93i+
7NevH8/NzdXGe+K4AvFnvuBDwau8zI/jEcErgo8Es/X5Qy1hXPevf/3LXd70
6dPjQse+/vpry/d1y5Ytrk6dOml6r5aFZwI9vW9Tna9GYZi/lOf497//rZ1A
vVc//PCDPO81Eb7GH/CytuVNpQjW6ULRjoth6+X1whgHutaiRQv3Z6NGjZLX
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
HvE6Vls4hpgt8ljEt9HTDxbO+QQyPPbYYx7tS49/mRmO3818axjpWBho1ow1
VXVs4kTWJZB8qansZydieYBQdKxWrVoNe/To0RbrxtLS0ubDd917PSTezYty
EA8/94477mjmVYZbx7799lvtnKJMd94zzzwTvot4rvw5zLbBm4t5lCRxjY/x
AOocoo5Bl7C3QA9Rzm5kwF4BWNMly8IeA3oaHEh9fFAZvwVaKMuEXyrG7eKc
qfzUea4K4vOD+F5dj4F5MvE5bGdY42hEiY6dJuqxF+vr1Huzdu1aGSP+lDXH
4vgt8P+AH4g8HvO1+vqTcwM871f4oarPCMrT/R/D4i/FSMciRo0a7BZVx2bO
ZC8Hks+pWB7Mj45hnzHojy8w7uJlvk7utGjRIt6yZUuPOSLMoeM7Ma4a4eP8
bh2D/5kYx3m0Sfh46+mdcNooH2g6hnUyiDsYKbZu3Yp7ErKOCZt1woR89Z6K
e1KK9VpqzEP4Cuixgg9bsH3eIBYRV2PxNW3aVJ7WKFaHNgmG42Set956S+bp
GM42ESU6hpgX/OOPP3bX4x//+Iesh1GsDi2gGGKiyjzPPvuszPNCgOddjPVh
attSYoQMCMdvZ741jHQsTJw8yQ5KTVq4kPUOJE9ODvvLiVgezEDHEP8FumIG
1qJgbTP6EOJ/yhh4iFeNOY4JEybI9/CliYmJHxuc361j8O8QmufRJrH2VU9P
h9E2+ELTMfhcMuP+4zjQ0VB0DLFX/d1XrD/Hew/ExHvkkUe4XPeMNVtvvvkm
9tDQbgjihok/tUO4pgsx1r7ooot8acE/DPJgT2/tOJkH+8qEcU8tN1GiY1pw
AaxXkfVQ3nc1Mchzkff6zrPPPluL9yFSYoDnXZ+SkuLh43HnnXfK83YJx283
6SekY2EgL4/9LTUpIYH5igHvgR7LI82JWB7MQMeCAfsqYK2qeE6T7RnzDFlT
p0590eT8bh1LTU3V/NTUMmFH9XR/GG2DL2JCx6yCMRjiMW/atIl7Jax7DsVe
Y8DvYUuhl/BbFGmtWV7YWhynxhWZN2+e03tq+apHpHWsOuJbrFy50l0HvLNE
7CZ9D6LTTPLOgx+IukcFnjv19M8AfvtevAtT2wrGd3p6MBy/36Tdko6FAfgb
Sk1au5YN8Xd8mzbsDnUuctw4+2J5MBt1DLEdENN3+PDh7phuSFlZWWteeeWV
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
CV1CqXN29v90Cz4ecRbLg3SMIIigMLAbpGMGFBQUpP71118e1wrrp5HWrl07
JJQ6I869Oo8YZ7E8AOkYQRCWMbAbpGMGZGZmriguLnYhzocsF2vLkHbs2PFN
KHU+epT9KXVr3z42Q9WxPn1Yh0hf0zBAOkYQhGUM7AbpmAEnTpzYfOzYMZd6
rWrWrKmVm5KS8mModU5LY/OlbqWns9/jLJYHIB0jCMIyBnaDdMwA7NOCmB7q
tbruuuu0crdt2/Z5KHWGb72yl+baOIvlAUjHCIKwjEguA9uREAV2LWic0LGX
XnqpHfKPGzfO41q1atVKKxf+jKHUefdu9r3UrtxclhRnsTzAcua7LeZHup8Q
BBG9iJRuYDuSosCuBY0TOpaRkbEc+e+9916Pa4W9XZCGDh36aCh1Vn07CgrY
/jiL5QF2MN9tcV+k+wlBENGLSBsNbEdGFNi1oLFTxy6//PJbk5KSxiLv+PHj
Pa5ThQoV8F7MVVBQcCjUOm/axEap78TiLJYHyGK+2+KqSPcTgiCiF5HmGdiO
UoFt+2uFm1B0DPuKiWNbjxs37lnsD33y5MmjyLdnzx7XOeec43Gdnn/+ea3M
v/766+tQ64y1zlK7SkpYTpzF8mjIjOe4Z0S6nxAEEb2INNbAdoC7o8C+2a5j
xcXF2YWFhVlGlJaWlnAlHT582PXqq6/yKlWqeFyf66+/nsN3Uehc+o033nh7
qHVeupT1l9pVWspOxlksj3uZcTscHel+QhBE9CLSQBP78VgU2DfbdKx169Z8
6dKlpixZsoTPmjWLjxw5kr/++uu8Y8eO/Mwzzzzl2tSvX58fOXLEJTSveMqU
Kd3tqPOvv7I3pHa5XKwkzmJ5PO19jRXejnQ/IQgiehHpeRP70TsK7JttOmYH
lSpV4u+88w4XYzBoWMmcOXNes6vO06axHrp2ZYhbU4q/cRTLo5/JdX8y0v2E
IIjoRaR7TOzHvCiwbxHXsbPOOos3adKEf/bZZzwzM1Pbcyw3N/fvL7/88mk7
6/zNN+zZggKWlZvL8sR4zJWTw3JOnmSZcRLLY7HJPWge6X5CEET0ItK5giID
+3FCcEsU2Ligdezrr7/mQm8sgfVh06ZN4wsWLOBJSUkYd3GZhH7tRhzFWrVq
NbS5zjfffTf7+dAhxjMyGC8tZTw9nfG0NOaqXZt9Gunr6TCNBHk+2h8oEJwV
6X5CEER0I9JvBjYEhBTDPVJIHQslYS8WkfalpaUt2Lhx44jhw4c/7mCdv7n6
asahY5mZjBcVaRrG9+xx34e+kb6mDvIiM25/v0S6fxAEEf2I1NPEjnwfBXbO
Mk1FeuSRR+4KhlatWjU///zzwzkOvU9QetFFjCckMDEOZHzGDMbr1WO8Rg2P
sfFtkb6uDvETM3mOinT/IAgi+hHpMhM7khoFdi7W+cDk+pf7sXEAHDb4vVhP
VivS/YMgiPIBM47rAXpEga2LZb41ufYq/aKgrnbTw+T3UhwPgiACRqQBJvYk
mZXj2B7lgEEm116lcxTU1U5uYmVty+j39o50vyAIovwg0nV+bOi7UWD3YpU2
zNhnVJIpuDUK6mon75r8XswpXhXpfkEQRPlCpBkmduVgDNrRaGK0ybUHvaKg
jnaCtnTI5Pd+H+n+QBBE+UOkawXFJrYl1tcxRZoRgpNe1/yY4O0oqJvdDGPG
7axQcEWk+wNBEOUTkb40sS/ZgvZRYANjmZaCNwSfsLL1ECHHH45COgpymXE7
GxHpfkAQRPlFpFp+bEyKoEkU2EKifNJcsJ8Zty+sk7sg0v2AIIjyjUiDTewM
wP7z5L9IWAVtZjUzb1vvRLr9EwRR/hHpbGb+Dh5MigK7SJQvfmTmbeqAoGqk
2z9BELGBSM2Yf1/wj6PANhLlA7QVs7aEttYs0u2eIIjYQqSufmwPmMrKaUx8
IixgLtHfOAx0jXR7JwgiNhFpTAA2KJGVvb+PtM0koovmzP/7MDAm0u2cIIjY
RaQzBL8HYIvgg9YxCmwnER2gLZj5JUrQts6IdDsnCCK2Eek8we4AbBL89bHu
qVEU2FEiMiBOB9Y4m63dkKBNnRfp9k0QRHwg0jWCvQHYJoC9Xvqwsjiwkbar
RHjAezDs9enPz1XVsLqRbtcEQcQXIl0oSAjQToEkQbcosLGEs2DvlZ0+7r8R
SwTnR7o9EwQRn4hUSTDWgs0CewUTBM8wWj8dC+AePiuYzMrG3lbaAuKeVYx0
OyYIghDpJUGJRRsGsP/ILMGbgicE9zDStmjmFv0ePaHfs9mCrCDuO+JP94h0
uyUIglAR6U4W+PsQM0oFGaxsHhIxr5YQEWW5fi8y9HsT6v1FG7kz0u2VIAjC
FyJVE/QX5Nhg74jYIlvQT1At0u2UIAjCHyLVFHzG/MeyImIftIFRggsj3S4J
giCsIlJdwTRWti99pO0pEV5wz38QXBnpdkgQBBEqrGy9GdaQJTLStFgG93aV
oLfgqki3O4IgCCcQ6WJWFnP4V8HJKLC9RGjgHs4TPC+oFen2RRAEEU5YmV/I
PbquDRB8JfhZsIaV7T9VHAV2Ot4p0u/FGv3eYM1Xf123WjHy2yAIIor4fxGu
LF4=
    "], {{0, 571}, {434, 0}}, {0, 255},
    ColorFunction->RGBColor],
   BoxForm`ImageTag["Byte", ColorSpace -> "RGB", Interleaving -> True],
   Selectable->False],
  BaseStyle->"ImageGraphics",
  ImageSize->{172., Automatic},
  ImageSizeRaw->{434, 571},
  PlotRange->{{0, 434}, {0, 571}}]], "Input",
 CellChangeTimes->{{3.6032978083206043`*^9, 3.6032978083214808`*^9}}],

Cell[BoxData[
 GraphicsBox[
  TagBox[RasterBox[CompressedData["
1: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
FM33FnkcY3nLHDhwYGtx3I1p06Z5He/Vq1fzGPfi+8ViRds5TxXfC1y+fLlX
PT/++CPnuypu3LhxIx/brbv66qt57jJDeNaoU6eO17a1a9fmMR/nuf2irQfE
n3aCKgGc5/xS9UuiPT/ztsKHrkGDBrnnV9u0aRM8BkCEQ/BYUKxbRwPN4zDs
qIPfG+P3x2Q9/F5Zecs8duzYFHHcDeERz7Hm3Bn8nlZKSsoaK9vPc7YIZxnm
XCGdO3fm6o3Nmzd/4GMbvj9r/POf/zT4OVl2drbXWBGG55Xh98zYRVwO59MX
fzYJJhol9wo5wTAPDuH51KaKz3cbFxa+N8njM//whz94yoPHAIh8CB4LiiVL
6E3Tu8oJdtXD+TxkPWlptLE8ZV133XV1i4qKMmJiYlyXXHLJRWMCFy9ebFme
SEb08d7hcs15qvh5WW5urks46oCPbdbJ791zzz1Gamoq992Mbt26XXR+sov+
85//uMfzZ2RkuPtovhbhUhf3PTnHiPk+KnPDDTcYx48fh8cAiHBKxweCxwLi
hx/oVfM9P86Bb0c9nF/RlDc4lfMvBlvW/Pnz3ZOhDBgwwOtY79ixg/NG5XLu
eyvbznmoOGf+tm3bvOrjuZ95ee+9954utc068/dq1qxpHDhwwP3dDRs2GPfd
d5/qXHU7ivMb8zwv9erVM8S+GOY5Qc3wHGlvvfUW+1T6b4bT1yEAIHhUcYHg
Mb989RW9aPYYz0lmRz2c757z3st61qyh/sGWJfo36/j+4U033eQ5zrVq1TJ4
8ZfHtzwkJiYu4/LN7zdzX4uX6Ojo0u+Pe3mMLvhpypQpPObe7Rx+3sZjPvid
7dLfLQvhVWPUqFGe/pvohx0Rfx51+hoEAJQPP9c9POaHYcOovdljPEe0XXXx
PGSmd9WWBFNG69atm/C4C9Hvco+jkHAuXl6mTZvW1Y62z549uzuXz/WY6+WF
5x2rXr16PdP3L/LYBXiM4u2COcaFhcf0L1682H1PlOfuvP/++91O5vuN7Ok7
77zT/e51jx493Pce4+LiXHJb8TvsF3846WMFp68/AED5UcQNeKwM+vShlmaP
vf02PWlXXTwvtOlZXCLPG61bhujHvMXzfPkiOzt7n+rd5PLCz+RycnL2q+r+
5ptvXjJ935/H5DnL+Td4zrTVwkecPziQ5fwFd40V1HP6mgMAWIsibsBjZdCh
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
xsT9+/d/zmVw306WK8fXC7e9wd/h8fhZWVmuK6+80vOdnTt3ut9j4xxcwdYt
+jMTpBNOn6YfHXJCwPC722Xl8ggR8BgAQBtF3AiZxxITE5dxmVWrVvWUJ+rh
VcbChQvfCKbMChUq1CkoKIgX/S6X+G9PuQcPHuT3nbOqV6/uzvHOnuR6nn76
ac93XnvtNXfd5bmnuXs3jZJO4Pt1TvkpUDp1omaB5PIIAfAYAEAbRdwImcfy
8/NjOD+Vubz+/ftzNQbf+wumzClTpnTh7c3jR+rUqeMu05x/qm3btk1cLte5
xYsXe7537bXXGkVFRS7RT9sebDzesoU+kk7Izqb9DjkhYMIklwc8BgAICkXc
CInHOM88lzdx4kRPWZdeeqlx4MABV3nu7SUkJCzmcm+//faLxnCMHDnSKz/g
6dOnN/BYkD/+8Y+e786cOZO/6urVq1eLYOpft44GSifk5dFxp/wUKGGSywMe
AwAEhSJu2OqxZs2aPbBv375xPG6Qx76bc1bJvL08Jj+YWNiwYcP7hJcKt2zZ
4imT7y0KX7n4HezS31+6dGlfru/111/3fP+RRx5xt+HQoUNBvfu1ZAm9KZ1Q
WEhJTjoqEDh3lqm98Q62BR4DAGijiBvaHisqKkrZvn37cF9s27ZtmPDW53Fx
cXM49xN7hsvh+4k8RlCWw+MUU1JSuC+W16RJkweCiYU//fTT+1x2165dPeU+
8cQTvMrYvXv36NLfv/CudI74zKtPKPp0rsLCwpRg3sXmuSbN/RueE8VpV/kj
THJ5wGMAgKCwymOBLpxjcdOmTUaHDh2Myy+/3L3973//e/f4CuENdljB/Pnz
Xw82Fp45c2ZvQUGBq0qVKp72cT59HoPfuXPnR3xtc/LkyVnctn/+85+ebT74
4AN3e2fMmKGdf/+rr+hFs8eaNqUHnHaVP8zvCTiYywMeAwAEhRUe434Uz7+i
olGjRsY//vEPt6/kNtdff73x0ksvcY55HufuzhMlPHa6PPNZcr4rLofnR5P1
8DhIHreRkZGxRbUd5w3h7UaMGOHZ7pZbbuFVRlJSkvb7X8OGUXuzx7p0oUed
dpU/wiSXBzwGAAgKRdzQ8pgut912mzFr1ix+pmbIhXP07tix49Py5FQ8duzY
VC6L89nLuv773/+6y1+zZk1/f9uKfuLJ5ORk12WXXebZduPGjZwHv0iU10in
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
2lezxZ8xXHmWMrAbpGNhIC2NLZQ6tHs3+95KXqdieUgda9OmjVG7CAi0x5tu
uom/8847fOfOnVr7KyoqOrFkyZJ+JucPVMdqCH4QuJC+//57fvPNN/MKFSpY
rmeNGjX4iy++CDut1VEUl8vL5jNOeeYrz0DH1q9fH9I9BRdffDHv0KEDnzp1
qtuuiARR+T8H6n0W7seGDRt81mXNmjW4X3niuLMjfX2jmNPFvU/bv3+/y1f/
+PXXX3ENSx26f6A6L5vXLxXn4T/++CNv2LBhUH21evXqvFu3bnzdunWyr+aL
P/0EVU3ykY45zIEDbJay/mumlbzq/mV2xvKwS8e8eeCBB7joS9rz/NatW8cY
nD8QHbtStN9klIOxQv369X2er3Llyrxu3br81ltv5W3btuXt27fnjRo14nXq
1NG+85UHvxljSb2P7IkCG2QbdumYyoUXXsjHjRuHa4Vn5BRxnsttrjfmL3mP
Hj3c58Szuvw3bJqeno309Y1i2uICDRw40Oc1xNyEnno7cO46om38hcIxnsb4
yqivXnXVVR59Ff8266v33HMPT0pKkn31gEk7JR1zmJQU9oPUIjE2m28lr1Ox
PHzp2Pnnn88xX2fGpEmT+Icffsh79uypzQXAxnm3KZQjxz3Lly8f5OP8/nTs
VmEvjwr4q6++espxNWvW1M6PZ8yCggL3vKZ3wpzn77//zl977TV+zTXXeJRR
sWJFbQ5D9I2SKLBBtuFLx7p06eL3vo4ZM0YbUz/99NP8P//5j09b8cwzz0DH
pJZVtbHeywoLC13nnXee+1wTJ050//vcc8+VY8Llkb6+UcxMPGdcccUV7us2
fvx4ftppp2n/xrxJZmamS382tPO8t4j2cAQFv/HGGz6fgfB8An3Lz8837avC
JvHXX3+dX3vttR5lnHHGGRz9GMnAbpCOhYEdO9g4qUVHj7I/reR1KpaHLx3D
XLXVBB35/PPPtTGR2q4wj5eamuoqKirK9vG+zEzHrhZdIicvL68Uz2zq93i+
7NevH8/NzdXGe+K4AvFnvuBDwau8zI/jEcErgo8Es/X5Qy1hXPevf/3LXd70
6dPjQse+/vpry/d1y5Ytrk6dOml6r5aFZwI9vW9Tna9GYZi/lOf497//rZ1A
vVc//PCDPO81Eb7GH/CytuVNpQjW6ULRjoth6+X1whgHutaiRQv3Z6NGjZLX
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
HvE6Vls4hpgt8ljEt9HTDxbO+QQyPPbYYx7tS49/mRmO3818axjpWBho1ow1
VXVs4kTWJZB8qansZydieYBQdKxWrVoNe/To0RbrxtLS0ubDd917PSTezYty
EA8/94477mjmVYZbx7799lvtnKJMd94zzzwTvot4rvw5zLbBm4t5lCRxjY/x
AOocoo5Bl7C3QA9Rzm5kwF4BWNMly8IeA3oaHEh9fFAZvwVaKMuEXyrG7eKc
qfzUea4K4vOD+F5dj4F5MvE5bGdY42hEiY6dJuqxF+vr1Huzdu1aGSP+lDXH
4vgt8P+AH4g8HvO1+vqTcwM871f4oarPCMrT/R/D4i/FSMciRo0a7BZVx2bO
ZC8Hks+pWB7Mj45hnzHojy8w7uJlvk7utGjRIt6yZUuPOSLMoeM7Ma4a4eP8
bh2D/5kYx3m0Sfh46+mdcNooH2g6hnUyiDsYKbZu3Yp7ErKOCZt1woR89Z6K
e1KK9VpqzEP4Cuixgg9bsH3eIBYRV2PxNW3aVJ7WKFaHNgmG42Set956S+bp
GM42ESU6hpgX/OOPP3bX4x//+Iesh1GsDi2gGGKiyjzPPvuszPNCgOddjPVh
attSYoQMCMdvZ741jHQsTJw8yQ5KTVq4kPUOJE9ODvvLiVgezEDHEP8FumIG
1qJgbTP6EOJ/yhh4iFeNOY4JEybI9/CliYmJHxuc361j8O8QmufRJrH2VU9P
h9E2+ELTMfhcMuP+4zjQ0VB0DLFX/d1XrD/Hew/ExHvkkUe4XPeMNVtvvvkm
9tDQbgjihok/tUO4pgsx1r7ooot8acE/DPJgT2/tOJkH+8qEcU8tN1GiY1pw
AaxXkfVQ3nc1Mchzkff6zrPPPluL9yFSYoDnXZ+SkuLh43HnnXfK83YJx283
6SekY2EgL4/9LTUpIYH5igHvgR7LI82JWB7MQMeCAfsqYK2qeE6T7RnzDFlT
p0590eT8bh1LTU3V/NTUMmFH9XR/GG2DL2JCx6yCMRjiMW/atIl7Jax7DsVe
Y8DvYUuhl/BbFGmtWV7YWhynxhWZN2+e03tq+apHpHWsOuJbrFy50l0HvLNE
7CZ9D6LTTPLOgx+IukcFnjv19M8AfvtevAtT2wrGd3p6MBy/36Tdko6FAfgb
Sk1au5YN8Xd8mzbsDnUuctw4+2J5MBt1DLEdENN3+PDh7phuSFlZWWteeeWV
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
CV1CqXN29v90Cz4ecRbLg3SMIIigMLAbpGMGFBQUpP71118e1wrrp5HWrl07
JJQ6I869Oo8YZ7E8AOkYQRCWMbAbpGMGZGZmriguLnYhzocsF2vLkHbs2PFN
KHU+epT9KXVr3z42Q9WxPn1Yh0hf0zBAOkYQhGUM7AbpmAEnTpzYfOzYMZd6
rWrWrKmVm5KS8mModU5LY/OlbqWns9/jLJYHIB0jCMIyBnaDdMwA7NOCmB7q
tbruuuu0crdt2/Z5KHWGb72yl+baOIvlAUjHCIKwjEguA9uREAV2LWic0LGX
XnqpHfKPGzfO41q1atVKKxf+jKHUefdu9r3UrtxclhRnsTzAcua7LeZHup8Q
BBG9iJRuYDuSosCuBY0TOpaRkbEc+e+9916Pa4W9XZCGDh36aCh1Vn07CgrY
/jiL5QF2MN9tcV+k+wlBENGLSBsNbEdGFNi1oLFTxy6//PJbk5KSxiLv+PHj
Pa5ThQoV8F7MVVBQcCjUOm/axEap78TiLJYHyGK+2+KqSPcTgiCiF5HmGdiO
UoFt+2uFm1B0DPuKiWNbjxs37lnsD33y5MmjyLdnzx7XOeec43Gdnn/+ea3M
v/766+tQ64y1zlK7SkpYTpzF8mjIjOe4Z0S6nxAEEb2INNbAdoC7o8C+2a5j
xcXF2YWFhVlGlJaWlnAlHT582PXqq6/yKlWqeFyf66+/nsN3Uehc+o033nh7
qHVeupT1l9pVWspOxlksj3uZcTscHel+QhBE9CLSQBP78VgU2DfbdKx169Z8
6dKlpixZsoTPmjWLjxw5kr/++uu8Y8eO/Mwzzzzl2tSvX58fOXLEJTSveMqU
Kd3tqPOvv7I3pHa5XKwkzmJ5PO19jRXejnQ/IQgiehHpeRP70TsK7JttOmYH
lSpV4u+88w4XYzBoWMmcOXNes6vO06axHrp2ZYhbU4q/cRTLo5/JdX8y0v2E
IIjoRaR7TOzHvCiwbxHXsbPOOos3adKEf/bZZzwzM1Pbcyw3N/fvL7/88mk7
6/zNN+zZggKWlZvL8sR4zJWTw3JOnmSZcRLLY7HJPWge6X5CEET0ItK5giID
+3FCcEsU2Ligdezrr7/mQm8sgfVh06ZN4wsWLOBJSUkYd3GZhH7tRhzFWrVq
NbS5zjfffTf7+dAhxjMyGC8tZTw9nfG0NOaqXZt9Gunr6TCNBHk+2h8oEJwV
6X5CEER0I9JvBjYEhBTDPVJIHQslYS8WkfalpaUt2Lhx44jhw4c/7mCdv7n6
asahY5mZjBcVaRrG9+xx34e+kb6mDvIiM25/v0S6fxAEEf2I1NPEjnwfBXbO
Mk1FeuSRR+4KhlatWjU///zzwzkOvU9QetFFjCckMDEOZHzGDMbr1WO8Rg2P
sfFtkb6uDvETM3mOinT/IAgi+hHpMhM7khoFdi7W+cDk+pf7sXEAHDb4vVhP
VivS/YMgiPIBM47rAXpEga2LZb41ufYq/aKgrnbTw+T3UhwPgiACRqQBJvYk
mZXj2B7lgEEm116lcxTU1U5uYmVty+j39o50vyAIovwg0nV+bOi7UWD3YpU2
zNhnVJIpuDUK6mon75r8XswpXhXpfkEQRPlCpBkmduVgDNrRaGK0ybUHvaKg
jnaCtnTI5Pd+H+n+QBBE+UOkawXFJrYl1tcxRZoRgpNe1/yY4O0oqJvdDGPG
7axQcEWk+wNBEOUTkb40sS/ZgvZRYANjmZaCNwSfsLL1ECHHH45COgpymXE7
GxHpfkAQRPlFpFp+bEyKoEkU2EKifNJcsJ8Zty+sk7sg0v2AIIjyjUiDTewM
wP7z5L9IWAVtZjUzb1vvRLr9EwRR/hHpbGb+Dh5MigK7SJQvfmTmbeqAoGqk
2z9BELGBSM2Yf1/wj6PANhLlA7QVs7aEttYs0u2eIIjYQqSufmwPmMrKaUx8
IixgLtHfOAx0jXR7JwgiNhFpTAA2KJGVvb+PtM0koovmzP/7MDAm0u2cIIjY
RaQzBL8HYIvgg9YxCmwnER2gLZj5JUrQts6IdDsnCCK2Eek8we4AbBL89bHu
qVEU2FEiMiBOB9Y4m63dkKBNnRfp9k0QRHwg0jWCvQHYJoC9Xvqwsjiwkbar
RHjAezDs9enPz1XVsLqRbtcEQcQXIl0oSAjQToEkQbcosLGEs2DvlZ0+7r8R
SwTnR7o9EwQRn4hUSTDWgs0CewUTBM8wWj8dC+AePiuYzMrG3lbaAuKeVYx0
OyYIghDpJUGJRRsGsP/ILMGbgicE9zDStmjmFv0ePaHfs9mCrCDuO+JP94h0
uyUIglAR6U4W+PsQM0oFGaxsHhIxr5YQEWW5fi8y9HsT6v1FG7kz0u2VIAjC
FyJVE/QX5Nhg74jYIlvQT1At0u2UIAjCHyLVFHzG/MeyImIftIFRggsj3S4J
giCsIlJdwTRWti99pO0pEV5wz38QXBnpdkgQBBEqrGy9GdaQJTLStFgG93aV
oLfgqki3O4IgCCcQ6WJWFnP4V8HJKLC9RGjgHs4TPC+oFen2RRAEEU5YmV/I
PbquDRB8JfhZsIaV7T9VHAV2Ot4p0u/FGv3eYM1Xf123WjHy2yAIIor4fxGu
LF4=
    "], {{0, 571}, {434, 0}}, {0, 255},
    ColorFunction->RGBColor],
   BoxForm`ImageTag["Byte", ColorSpace -> "RGB", Interleaving -> True],
   Selectable->False],
  BaseStyle->"ImageGraphics",
  ImageSize->{172., Automatic},
  ImageSizeRaw->{434, 571},
  PlotRange->{{0, 434}, {0, 571}}]], "Output",
 CellChangeTimes->{3.605993222686267*^9, 3.6060374056793003`*^9, 
  3.608470117033205*^9, 3.608839518347321*^9, 3.6125223320689106`*^9, 
  3.612542811271837*^9, 3.612543287787484*^9, 3.6125438699606953`*^9, 
  3.612544219184614*^9, 3.6125448160762978`*^9, 3.612545524523135*^9, 
  3.6128084137852387`*^9, 3.612832814767111*^9, 3.612834354846198*^9, 
  3.612871585178628*^9, 3.612873853694457*^9, 3.6128845056895494`*^9, 
  3.6128848517291503`*^9, 3.6128855374157124`*^9, 3.6131491101924715`*^9, 
  3.6131495872593555`*^9, 3.615832978078128*^9, 3.6169358744549246`*^9, 
  3.6169362858210573`*^9, 3.616943562189621*^9, 3.6169489361079597`*^9, 
  3.616953116478955*^9, 3.6171023820604696`*^9, 3.6200653167676234`*^9, 
  3.6200685830676727`*^9, 3.62125239230165*^9, 3.6212527266667747`*^9, 
  3.6212554976502657`*^9}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Coordinate Conventions", "Subsection",
 CellChangeTimes->{{3.60329848306194*^9, 3.603298486635306*^9}}],

Cell["\<\
We use the humanoid frame designation. You can get the same by placing your \
right hand on your chest, point your thumb \[OpenCurlyDoubleQuote]x\
\[CloseCurlyDoubleQuote] forward, point your index finger \
\[OpenCurlyDoubleQuote]y\[CloseCurlyDoubleQuote] to the left, and your middle \
finger \[OpenCurlyDoubleQuote]z\[CloseCurlyDoubleQuote] up\
\>", "Text",
 CellChangeTimes->{{3.603298490042324*^9, 3.603298578884993*^9}}],

Cell[CellGroupData[{

Cell["x - Forward", "Item",
 CellChangeTimes->{{3.603298512731841*^9, 3.603298515480319*^9}, {
  3.603298580682287*^9, 3.603298582701511*^9}}],

Cell["y - Left (zeroed out for the planar case)", "Item",
 CellChangeTimes->{{3.603298583106081*^9, 3.603298591787472*^9}}],

Cell["z - Up", "Item",
 CellChangeTimes->{{3.603298592376502*^9, 3.603298593419983*^9}}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Angle Conventions", "Subsection",
 CellChangeTimes->{{3.603298338637128*^9, 3.603298340723537*^9}}],

Cell["\<\
We have designated angles so that positive angle displacements cause flexion \
(i.e., all positive angles cause the robot to lean back)\
\>", "Text",
 CellChangeTimes->{{3.6032983446902742`*^9, 3.603298347315378*^9}, {
  3.603298398458075*^9, 3.603298411488702*^9}}]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell["Initialization", "Section",
 CellChangeTimes->{{3.603297506924075*^9, 3.60329750809265*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{"SetDirectory", "[", 
  RowBox[{"NotebookDirectory", "[", "]"}], "]"}], "\n", 
 RowBox[{
  RowBox[{"UtilPath", "=", 
   RowBox[{"FileNameJoin", "[", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"Directory", "[", "]"}], ",", "\"\<mathematica_util\>\""}], 
     "}"}], "]"}]}], ";"}], "\n", 
 RowBox[{
  RowBox[{"$Path", "=", 
   RowBox[{"DeleteDuplicates", "[", 
    RowBox[{"Append", "[", 
     RowBox[{"$Path", ",", "UtilPath"}], "]"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.603297493708568*^9, 3.60329749427559*^9}, 
   3.606057010750979*^9, 3.608839514302059*^9}],

Cell[BoxData["\<\"C:\\\\Users\\\\Ken\\\\Desktop\\\\Amber3_FlatFeet\\\\\
dynamics_embedding\"\>"], "Output",
 CellChangeTimes->{{3.608839515358869*^9, 3.6088395183891973`*^9}, 
   3.609431423892911*^9, 3.609441894085504*^9, 3.60946647022467*^9, 
   3.609498893286232*^9, 3.609502740951606*^9, {3.609503467959214*^9, 
   3.609503493153079*^9}, 3.609505715093998*^9, 3.609510550481803*^9, {
   3.60951561557201*^9, 3.609515631161516*^9}, 3.609586086280403*^9, 
   3.6096031509558573`*^9, 3.6096075666281*^9, 3.609608763731308*^9, 
   3.6096208140132103`*^9, 3.6096290566760674`*^9, 3.609638009415127*^9, 
   3.609673983475666*^9, 3.6097751212356873`*^9, 3.609797216847724*^9, 
   3.610192872038117*^9, 3.6102073212476807`*^9, 3.6102323173303328`*^9, 
   3.61023984561771*^9, {3.610275397921074*^9, 3.610275417264121*^9}, 
   3.610276845805421*^9, 3.6102959406998043`*^9, 3.6103288388490753`*^9, 
   3.6103794769142113`*^9, 3.61038007790758*^9, 3.610453787223157*^9, 
   3.610640156655546*^9, 3.610651922056032*^9, 3.610670376284292*^9, 
   3.610848585045039*^9, 3.612522332105914*^9, 3.6125428113058405`*^9, 
   3.612543287807486*^9, 3.612543869990699*^9, 3.6125442192156177`*^9, 
   3.6125448162903194`*^9, 3.6125455247261553`*^9, 3.612808413855239*^9, 
   3.6128328148851175`*^9, 3.612834354957205*^9, 3.612871585230633*^9, 
   3.6128738537544627`*^9, 3.6128845057295537`*^9, 3.6128848517811556`*^9, 
   3.612885537445715*^9, 3.613149110256465*^9, 3.6131495872843556`*^9, 
   3.615832978107128*^9, 3.6169358744999294`*^9, 3.616936285839059*^9, 
   3.6169435622816305`*^9, 3.616948936148964*^9, 3.616953116522959*^9, 
   3.6171023820994735`*^9, 3.6200653168206234`*^9, 3.6200685831536813`*^9, 
   3.621252392688672*^9, 3.6212527273828163`*^9, 3.6212554978042746`*^9}]
}, Open  ]],

Cell[BoxData[{
 RowBox[{
  RowBox[{"Needs", "[", "\"\<Units`\>\"", "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"Needs", "[", "\"\<RobotLinks`\>\"", "]"}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"Needs", "[", "\"\<ToMatlab`\>\"", "]"}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"Needs", "[", "\"\<ExtraUtil`\>\"", "]"}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"Needs", "[", "\"\<ToCpp`\>\"", "]"}], ";"}]}], "Input",
 CellChangeTimes->{{3.603297599328364*^9, 3.603297643709798*^9}, {
  3.6033039264136343`*^9, 3.6033039302836*^9}, {3.605741706977704*^9, 
  3.6057417086125937`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"On", "[", "Assert", "]"}], ";"}]], "Input"],

Cell[CellGroupData[{

Cell["Functions", "Subsection",
 CellChangeTimes->{{3.603300351312529*^9, 3.603300351989236*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"Vec", "::", "usage"}], "=", 
   "\"\<Vec[x]  Turn arbitrary list into vector\>\""}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"Vec", "[", "x_", "]"}], ":=", 
   RowBox[{"Transpose", "[", 
    RowBox[{"{", 
     RowBox[{"Flatten", "[", "x", "]"}], "}"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.603300299118198*^9, 3.603300343550972*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"ToExpressionEx", "::", "usage"}], "=", 
   "\"\<ToExpressionEx[expr]  loosely converts any string types in an 0- to \
n-dimensional list to an expression.\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"ToExpressionEx", "[", "value_", "]"}], ":=", 
   RowBox[{"Module", "[", 
    RowBox[{
     RowBox[{"{", "result", "}"}], ",", 
     RowBox[{
      RowBox[{"result", "=", 
       RowBox[{"If", "[", 
        RowBox[{
         RowBox[{"StringQ", "[", "value", "]"}], ",", 
         RowBox[{"ToExpression", "[", "value", "]"}], ",", 
         RowBox[{"If", "[", 
          RowBox[{
           RowBox[{"ListQ", "[", "value", "]"}], ",", 
           RowBox[{"Map", "[", 
            RowBox[{
             RowBox[{
              RowBox[{"If", "[", 
               RowBox[{
                RowBox[{"StringQ", "[", "#", "]"}], ",", 
                RowBox[{"ToExpression", "[", "#", "]"}], ",", "#"}], "]"}], 
              "&"}], ",", "value", ",", 
             RowBox[{"-", "1"}]}], "]"}], ",", "value"}], "]"}]}], "]"}]}], 
      ";", "\[IndentingNewLine]", 
      RowBox[{"Return", "[", "result", "]"}], ";"}]}], "]"}]}], 
  ";"}]}], "Input",
 CellChangeTimes->{{3.6033004650163517`*^9, 3.603300481627453*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"RationalizeEx", "::", "usage"}], "=", 
   "\"\<RationalizeEx[expr]  loosely rationalize any expression to an \
arbitrary precision\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"RationalizeEx", "[", "expr_", "]"}], ":=", 
   RowBox[{"Rationalize", "[", 
    RowBox[{"expr", ",", "0"}], "]"}]}], ";"}], "\n", 
 RowBox[{
  RowBox[{
   RowBox[{"RationalizeEx", "[", "expr_List", "]"}], ":=", 
   RowBox[{"Map", "[", 
    RowBox[{"RationalizeEx", ",", "expr", ",", 
     RowBox[{"-", "1"}]}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.6033004650163517`*^9, 3.6033005127886047`*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"RationalizeAny", "::", "usage"}], "=", 
   "\"\<RationalizeAny[value]  convert `value` to an expression and use \
RationalizeEx\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"RationalizeAny", "[", "expr_", "]"}], ":=", 
   RowBox[{"RationalizeEx", "[", 
    RowBox[{"ToExpressionEx", "[", "expr", "]"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.6033004650163517`*^9, 3.603300572410623*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", 
   RowBox[{
    RowBox[{"From", ":", 
     RowBox[{"http", ":"}]}], "//", 
    RowBox[{
     RowBox[{"mathworld", ".", "wolfram", ".", "com"}], "/", 
     RowBox[{"BlockDiagonalMatrix", ".", "html"}]}]}], "*)"}], 
  "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"BlockDiagonalMatrix", "[", 
     RowBox[{"b", ":", 
      RowBox[{"{", 
       RowBox[{"__", "?", "MatrixQ"}], "}"}]}], "]"}], ":=", 
    RowBox[{"Module", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"r", ",", "c", ",", 
        RowBox[{"n", "=", 
         RowBox[{"Length", "[", "b", "]"}]}], ",", "i", ",", "j"}], "}"}], 
      ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{
        RowBox[{"{", 
         RowBox[{"r", ",", "c"}], "}"}], "=", 
        RowBox[{"Transpose", "[", 
         RowBox[{"Dimensions", "/@", "b"}], "]"}]}], ";", 
       "\[IndentingNewLine]", 
       RowBox[{"ArrayFlatten", "[", "\[IndentingNewLine]", 
        RowBox[{"Table", "[", "\[IndentingNewLine]", 
         RowBox[{
          RowBox[{"If", "[", 
           RowBox[{
            RowBox[{"i", "\[Equal]", "j"}], ",", 
            RowBox[{"b", "[", 
             RowBox[{"[", "i", "]"}], "]"}], ",", 
            RowBox[{"ConstantArray", "[", 
             RowBox[{"0", ",", 
              RowBox[{"{", 
               RowBox[{
                RowBox[{"r", "[", 
                 RowBox[{"[", "i", "]"}], "]"}], ",", 
                RowBox[{"c", "[", 
                 RowBox[{"[", "j", "]"}], "]"}]}], "}"}]}], "]"}]}], "]"}], 
          "\[IndentingNewLine]", ",", "\[IndentingNewLine]", 
          RowBox[{"{", 
           RowBox[{"i", ",", "n"}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{"j", ",", "n"}], "}"}]}], "\[IndentingNewLine]", "]"}], 
        "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", "]"}]}], 
   ";"}]}]], "Input",
 CellChangeTimes->{{3.6033027293689747`*^9, 3.603302768545393*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"EnsureDirectoryExists", "[", 
    RowBox[{"dir_", "?", "StringQ"}], "]"}], ":=", 
   RowBox[{"Module", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"pieces", ",", "cur"}], "}"}], ",", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"pieces", "=", 
       RowBox[{"FileNameSplit", "[", "dir", "]"}]}], ";", 
      "\[IndentingNewLine]", 
      RowBox[{"Table", "[", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{
         RowBox[{"cur", "=", 
          RowBox[{"FileNameJoin", "[", 
           RowBox[{"pieces", "[", 
            RowBox[{"[", 
             RowBox[{"1", ";;", "i"}], "]"}], "]"}], "]"}]}], ";", 
         "\[IndentingNewLine]", 
         RowBox[{"If", "[", 
          RowBox[{
           RowBox[{"!", 
            RowBox[{"DirectoryQ", "[", "cur", "]"}]}], ",", 
           "\[IndentingNewLine]", 
           RowBox[{
            RowBox[{"CreateDirectory", "[", "cur", "]"}], ";"}]}], 
          "\[IndentingNewLine]", "]"}], ";"}], "\[IndentingNewLine]", ",", 
        "\[IndentingNewLine]", 
        RowBox[{"{", 
         RowBox[{"i", ",", 
          RowBox[{"Length", "[", "pieces", "]"}]}], "}"}]}], 
       "\[IndentingNewLine]", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.6033056823932858`*^9, 3.6033057752638893`*^9}}],

Cell[CellGroupData[{

Cell["Parallel simplification", "Subsubsection",
 CellChangeTimes->{{3.525444424954421*^9, 3.525444430793755*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"ParallelSimplify", "[", 
   RowBox[{"A_", "?", "MatrixQ"}], "]"}], ":=", 
  RowBox[{"ParallelTable", "[", 
   RowBox[{
    RowBox[{"Simplify", "[", 
     RowBox[{"A", "\[LeftDoubleBracket]", 
      RowBox[{"i", ",", "j"}], "\[RightDoubleBracket]"}], "]"}], ",", 
    RowBox[{"{", 
     RowBox[{"i", ",", 
      RowBox[{
       RowBox[{"Dimensions", "[", "A", "]"}], "\[LeftDoubleBracket]", "1", 
       "\[RightDoubleBracket]"}]}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{"j", ",", 
      RowBox[{
       RowBox[{"Dimensions", "[", "A", "]"}], "\[LeftDoubleBracket]", "2", 
       "\[RightDoubleBracket]"}]}], "}"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.525444031603923*^9, 3.525444057323394*^9}, 
   3.525444167371688*^9, {3.5254442077009945`*^9, 3.5254442142373686`*^9}, {
   3.5254442656763105`*^9, 3.52544431862834*^9}, {3.5254446389836626`*^9, 
   3.525444643198904*^9}, {3.607152931739543*^9, 3.6071529342476473`*^9}, 
   3.607172338369628*^9}],

Cell[BoxData[
 RowBox[{
  RowBox[{"ParallelSimplify", "[", 
   RowBox[{"A_", "?", "VectorQ"}], "]"}], ":=", 
  RowBox[{"ParallelTable", "[", 
   RowBox[{
    RowBox[{"Simplify", "[", 
     RowBox[{"A", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], 
     "]"}], ",", 
    RowBox[{"{", 
     RowBox[{"i", ",", 
      RowBox[{"Length", "[", "A", "]"}]}], "}"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.5254713763319516`*^9, 3.525471396675115*^9}, 
   3.607152938760189*^9, {3.607172344285391*^9, 3.60717234434837*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"ParallelSimplify", "[", "A_", "]"}], ":=", 
  RowBox[{"Simplify", "[", "A", "]"}]}]], "Input",
 CellChangeTimes->{{3.5254715146968656`*^9, 3.525471527826617*^9}, 
   3.607152939634897*^9, {3.607172346556066*^9, 3.6071723471040573`*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"\[IndentingNewLine]", 
  RowBox[{"2", "*", 
   RowBox[{
    RowBox[{"(", 
     RowBox[{
      RowBox[{"0.5", "*", "0.964"}], "+", 
      RowBox[{"1.485", "*", "0.943"}], "+", 
      RowBox[{"1.485", "*", "0.877"}], "+", 
      RowBox[{"3.85", "*", "0.63"}], "+", 
      RowBox[{"8.8", "*", "0.21"}]}], ")"}], "/", "48"}]}]}]], "Input",
 CellChangeTimes->{{3.607777160257102*^9, 3.607777251704968*^9}, {
  3.607777562386179*^9, 3.6077775628789873`*^9}, {3.608340373766239*^9, 
  3.6083403742504997`*^9}, {3.609505741331973*^9, 3.6095059954022217`*^9}}],

Cell[BoxData["0.31075833333333336`"], "Output",
 CellChangeTimes->{{3.607777243741791*^9, 3.607777252169114*^9}, 
   3.607777563425891*^9, 3.607779299987423*^9, 3.608223310156142*^9, {
   3.6083403761764317`*^9, 3.608340399009136*^9}, 3.6084677065174427`*^9, 
   3.608470117365237*^9, 3.608557712854114*^9, 3.60856197485423*^9, 
   3.608573338341796*^9, 3.608573975225814*^9, 3.6088395185455093`*^9, 
   3.6094314241266327`*^9, 3.6094418943216953`*^9, 3.609466470486329*^9, 
   3.609498893759384*^9, 3.6095027413483467`*^9, {3.609503468202736*^9, 
   3.6095034935311747`*^9}, 3.60950571546467*^9, 3.609505995821089*^9, 
   3.609510550730699*^9, 3.6095156312562037`*^9, 3.609586086668537*^9, 
   3.6096031511980877`*^9, 3.60960756686229*^9, 3.609608763964851*^9, 
   3.60962081426414*^9, 3.6096290569173517`*^9, 3.609638009667488*^9, 
   3.6096739839821033`*^9, 3.609775121698999*^9, 3.6097972170872307`*^9, 
   3.610192872479739*^9, 3.610207321664888*^9, 3.610232317591221*^9, 
   3.610239845845014*^9, {3.610275398424086*^9, 3.6102754175447083`*^9}, 
   3.6102768463168783`*^9, 3.610295941023189*^9, 3.610328839076388*^9, 
   3.610379477391396*^9, 3.6103800784117193`*^9, 3.610453787457226*^9, 
   3.610640156911687*^9, 3.610651922233543*^9, 3.610670376499846*^9, 
   3.610848585319353*^9, 3.61252233256096*^9, 3.6125428117448845`*^9, 
   3.6125432878634915`*^9, 3.6125438700477047`*^9, 3.6125442192616224`*^9, 
   3.612544816340324*^9, 3.612545524790162*^9, 3.612808414280239*^9, 
   3.6128328162161937`*^9, 3.612834355067211*^9, 3.6128715857346835`*^9, 
   3.612873853813469*^9, 3.6128845061475954`*^9, 3.6128848518401613`*^9, 
   3.6128855374967203`*^9, 3.613149110690422*^9, 3.6131495874013557`*^9, 
   3.6158329786341276`*^9, 3.6169358750109806`*^9, 3.6169362859050655`*^9, 
   3.616943562364639*^9, 3.616948936245973*^9, 3.616953116994006*^9, 
   3.617102382598523*^9, 3.620065317329623*^9, 3.6200685832196875`*^9, 
   3.621252402109211*^9, 3.6212527277838387`*^9, 3.621255508747901*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"213", "-", "190.10"}]], "Input",
 CellChangeTimes->{{3.609505933410735*^9, 3.609505960092124*^9}, {
  3.6096046342531567`*^9, 3.6096046431548977`*^9}, {3.609604800812462*^9, 
  3.609604805996231*^9}, {3.609605439382723*^9, 3.609605444925673*^9}, {
  3.6096054777255993`*^9, 3.6096054821311007`*^9}, {3.609605593021286*^9, 
  3.609605650808296*^9}, {3.609605683975835*^9, 3.60960568705577*^9}, {
  3.6096078215452538`*^9, 3.609607826463586*^9}, {3.610637293339623*^9, 
  3.610637330815289*^9}, {3.610637449173579*^9, 3.610637457716633*^9}, {
  3.610637508060362*^9, 3.6106375136434917`*^9}, {3.6106375483179607`*^9, 
  3.610637553884094*^9}, {3.6106400422542686`*^9, 3.6106400488482237`*^9}}],

Cell[BoxData["22.900000000000006`"], "Output",
 CellChangeTimes->{{3.609505940102103*^9, 3.609505960627858*^9}, 
   3.6095105507345123`*^9, 3.609515631272552*^9, 3.609586086700678*^9, 
   3.609603151201079*^9, 3.60960464364289*^9, 3.6096048065737743`*^9, 
   3.6096054458709707`*^9, 3.609605482554817*^9, 3.609605599286768*^9, {
   3.609605632071144*^9, 3.609605651679042*^9}, 3.6096056880501947`*^9, 
   3.609607566865377*^9, 3.609607826989728*^9, 3.6096087639678802`*^9, 
   3.6096208142673607`*^9, 3.609629056920534*^9, 3.609638009670718*^9, 
   3.6096739839927597`*^9, 3.609775121763213*^9, 3.609797217090476*^9, 
   3.6101928725194817`*^9, 3.610207321724742*^9, 3.610232317594152*^9, 
   3.610239845848364*^9, {3.6102753984295073`*^9, 3.610275417553094*^9}, 
   3.610276846368569*^9, 3.610295941032909*^9, 3.6103288390929613`*^9, 
   3.610379477456523*^9, 3.61038007844272*^9, 3.610453787460257*^9, 
   3.610637298739209*^9, 3.610637332127667*^9, {3.610637453000498*^9, 
   3.610637457957356*^9}, 3.6106375139966993`*^9, 3.610637554281096*^9, 
   3.610640049127611*^9, 3.610640156914321*^9, 3.61065192223597*^9, 
   3.610670376502534*^9, 3.6108485853226023`*^9, 3.612522332577961*^9, 
   3.6125428117618866`*^9, 3.612543287880493*^9, 3.612543870067706*^9, 
   3.6125442192816243`*^9, 3.6125448163573256`*^9, 3.6125455248151646`*^9, 
   3.6128084142952385`*^9, 3.6128328162681966`*^9, 3.612834355100213*^9, 
   3.6128715857576857`*^9, 3.6128738538384714`*^9, 3.6128845061645975`*^9, 
   3.6128848518671637`*^9, 3.6128855375207224`*^9, 3.613149110723418*^9, 
   3.613149587472356*^9, 3.6158329786481276`*^9, 3.6169358750329823`*^9, 
   3.6169362859450693`*^9, 3.6169435624196444`*^9, 3.61694893631398*^9, 
   3.6169531170150084`*^9, 3.6171023826155252`*^9, 3.6200653173356237`*^9, 
   3.6200685832266884`*^9, 3.621252402126212*^9, 3.6212527278038397`*^9, 
   3.621255508771902*^9}]
}, Open  ]]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell["\[LineSeparator]Constants", "Section",
 CellChangeTimes->{{3.603298417495467*^9, 3.603298418142044*^9}, 
   3.6069639873722887`*^9, {3.607777152213159*^9, 3.607777157597472*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"ndof", "=", "7"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"nb", "=", "2"}], ";"}]}], "Input",
 CellChangeTimes->{{3.603300183714676*^9, 3.603300220657152*^9}, {
   3.603300272500205*^9, 3.603300272743733*^9}, {3.603304444240386*^9, 
   3.60330444562402*^9}, {3.606960748540897*^9, 3.606960750091174*^9}, {
   3.6094314274295073`*^9, 3.6094314277967157`*^9}, {3.60943515328557*^9, 
   3.60943515553061*^9}, {3.609437604335084*^9, 3.6094376054778423`*^9}, 
   3.610635412840358*^9, 3.6125415934400663`*^9}],

Cell[CellGroupData[{

Cell["Lenghts, Masses, and Center of Masses", "Subsection",
 CellChangeTimes->{{3.6032995306419992`*^9, 3.6032995348483152`*^9}, {
  3.610640161229246*^9, 3.610640162002157*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{"constsubs", "=", 
   RowBox[{
    RowBox[{"{", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"mf", "\[Rule]", " ", 
       FractionBox["1151", "1000"]}], ",", 
      RowBox[{"cfx", "\[Rule]", 
       FractionBox["11451", "100000"]}], ",", 
      RowBox[{"cfz", "\[Rule]", 
       FractionBox["687", "100000"]}], ",", 
      RowBox[{"lt", "\[Rule]", 
       FractionBox["381", "2500"]}], ",", 
      RowBox[{"lh", "\[Rule]", 
       FractionBox["127", "2500"]}], ",", 
      RowBox[{"hf", "\[Rule]", 
       FractionBox["127", "2500"]}], ",", 
      RowBox[{"(*", " ", "foot", " ", "*)"}], "\[IndentingNewLine]", 
      RowBox[{"mc", "\[Rule]", " ", 
       FractionBox["193253", "50000"]}], ",", 
      RowBox[{"ccx", "\[Rule]", "0"}], " ", ",", 
      RowBox[{"ccz", "\[Rule]", 
       FractionBox["1373", "6250"]}], ",", 
      RowBox[{"Lc", "->", 
       FractionBox["254", "625"]}], ",", 
      RowBox[{"(*", " ", "calf", " ", "*)"}], "\[IndentingNewLine]", 
      RowBox[{"mt", "\[Rule]", 
       FractionBox["193253", "50000"]}], ",", 
      RowBox[{"ctx", "\[Rule]", "0"}], ",", 
      RowBox[{"ctz", "\[Rule]", 
       FractionBox["1373", "6250"]}], ",", 
      RowBox[{"Lt", "->", 
       FractionBox["254", "625"]}], ",", 
      RowBox[{"(*", " ", "thigh", " ", "*)"}], "\[IndentingNewLine]", 
      RowBox[{"mT", "\[Rule]", 
       FractionBox["260469", "25000"]}], ",", 
      RowBox[{"cTx", "\[Rule]", "0"}], ",", 
      RowBox[{"cTz", "\[Rule]", 
       FractionBox["2511", "10000"]}], ",", 
      RowBox[{"LT", "\[Rule]", 
       FractionBox["2511", "10000"]}], ",", 
      RowBox[{"(*", " ", "torso", " ", "*)"}], "\[IndentingNewLine]", 
      RowBox[{"Lboom", "->", 
       RowBox[{"83.5", "*", ".0254"}]}]}], " ", 
     RowBox[{"(*", " ", 
      RowBox[{"Length", " ", "of", " ", 
       RowBox[{"boom", " ", "[", 
        RowBox[{"in", " ", "\[Rule]", " ", "m"}], "]"}]}], " ", "*)"}], 
     "\[IndentingNewLine]", "}"}], "//", "RationalizeEx"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{"constsubs", "//", "N"}]}], "Input",
 CellChangeTimes->{{3.603298432231195*^9, 3.603298476484111*^9}, {
   3.603298607773345*^9, 3.6032987690653687`*^9}, {3.60329928075616*^9, 
   3.603299282250828*^9}, {3.603300397820136*^9, 3.603300401463704*^9}, {
   3.6033005868381*^9, 3.603300590800461*^9}, {3.6033030563151493`*^9, 
   3.603303082236878*^9}, {3.606945649434099*^9, 3.606945652512424*^9}, {
   3.606945720648698*^9, 3.6069457559860163`*^9}, {3.6069607224318113`*^9, 
   3.6069607284619093`*^9}, 3.6069607873703327`*^9, {3.6069610690613737`*^9, 
   3.6069610703626413`*^9}, {3.606961231021999*^9, 3.606961247769396*^9}, {
   3.6071245773868723`*^9, 3.607124579219447*^9}, {3.607132935741057*^9, 
   3.607132941381092*^9}, 3.607133328599946*^9, {3.6071333885973988`*^9, 
   3.607133439731112*^9}, {3.607149579731271*^9, 3.6071495798896103`*^9}, {
   3.6071497689507713`*^9, 3.607149770712913*^9}, {3.607218712884914*^9, 
   3.607218713246674*^9}, {3.607224707902732*^9, 3.6072247148136673`*^9}, {
   3.607777263039646*^9, 3.607777303611413*^9}, {3.6077775596250963`*^9, 
   3.607777571466749*^9}, {3.607779006634136*^9, 3.607779007697961*^9}, {
   3.6082233157068787`*^9, 3.6082233496903543`*^9}, {3.6083403888253927`*^9, 
   3.608340394806438*^9}, {3.608467695855949*^9, 3.608467726233605*^9}, {
   3.6085577285202427`*^9, 3.608557798606502*^9}, {3.6094314438409147`*^9, 
   3.609431489448256*^9}, {3.609431916954051*^9, 3.609431982445887*^9}, {
   3.6094320218112307`*^9, 3.6094323373940163`*^9}, {3.609432367748214*^9, 
   3.609432375299982*^9}, {3.609433599826085*^9, 3.609433600337408*^9}, 
   3.609435428008646*^9, {3.609436534854651*^9, 3.609436535846178*^9}, {
   3.609436894642558*^9, 3.6094369249314337`*^9}, {3.609437724016865*^9, 
   3.609437744477107*^9}, {3.6095105386545773`*^9, 3.60951054237001*^9}, {
   3.609604034532292*^9, 3.609604039060842*^9}, {3.609604600109415*^9, 
   3.6096046563424997`*^9}, {3.609604749110388*^9, 3.609604777973284*^9}, {
   3.609604811322163*^9, 3.609604817090919*^9}, {3.609605028462348*^9, 
   3.609605045125846*^9}, {3.609605160786355*^9, 3.609605247270795*^9}, {
   3.609605281951146*^9, 3.609605308593154*^9}, {3.609605456754519*^9, 
   3.609605487798912*^9}, {3.60960555571908*^9, 3.6096055859892683`*^9}, {
   3.6096056392514668`*^9, 3.609605694736807*^9}, 3.609605777082992*^9, {
   3.6096058276137*^9, 3.609605828141529*^9}, {3.609607832502569*^9, 
   3.609607833745359*^9}, {3.6096208277209253`*^9, 3.6096208318626738`*^9}, {
   3.6096300040634413`*^9, 3.609630008501422*^9}, {3.610191657900323*^9, 
   3.610191661094986*^9}, {3.610191705434071*^9, 3.610191711793573*^9}, {
   3.61063543158918*^9, 3.610635459169013*^9}, {3.610637306491625*^9, 
   3.6106373071994867`*^9}, {3.610637338944043*^9, 3.610637355450932*^9}, {
   3.6106374643394203`*^9, 3.610637493594637*^9}, {3.610637524806258*^9, 
   3.6106375280968637`*^9}, {3.6106375586072807`*^9, 
   3.6106375615363827`*^9}, {3.610640021292046*^9, 3.610640024094582*^9}, {
   3.610640056363669*^9, 3.6106400853663263`*^9}, {3.6106401705557117`*^9, 
   3.610640170770392*^9}, {3.610651919372517*^9, 3.610651919497032*^9}, {
   3.6125416612598476`*^9, 3.6125416627079926`*^9}, {3.6125419179155107`*^9, 
   3.612541960999819*^9}, {3.612541994123131*^9, 3.612541994897208*^9}, {
   3.612542080980816*^9, 3.6125420943811555`*^9}, {3.6125421295816755`*^9, 
   3.6125421750792246`*^9}, {3.612542473915105*^9, 3.61254247826654*^9}, {
   3.6125425095886717`*^9, 3.6125425336370764`*^9}, {3.612542615592271*^9, 
   3.612542615903302*^9}, {3.612542656631375*^9, 3.6125426575184636`*^9}, 
   3.6125427454022512`*^9, {3.6125427787735877`*^9, 3.6125427878334937`*^9}, {
   3.6125428542481346`*^9, 3.6125428563673463`*^9}, {3.612542948651574*^9, 
   3.6125429632360325`*^9}, {3.6125430143821464`*^9, 3.612543018309539*^9}, {
   3.621251148931534*^9, 3.62125114939156*^9}, {3.621251600888384*^9, 
   3.621251732586917*^9}, {3.6212517870360312`*^9, 3.621251827303334*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"mf", "\[Rule]", "1.151`"}], ",", 
   RowBox[{"cfx", "\[Rule]", "0.11451`"}], ",", 
   RowBox[{"cfz", "\[Rule]", "0.00687`"}], ",", 
   RowBox[{"lt", "\[Rule]", "0.1524`"}], ",", 
   RowBox[{"lh", "\[Rule]", "0.0508`"}], ",", 
   RowBox[{"hf", "\[Rule]", "0.0508`"}], ",", 
   RowBox[{"mc", "\[Rule]", "3.86506`"}], ",", 
   RowBox[{"ccx", "\[Rule]", "0.`"}], ",", 
   RowBox[{"ccz", "\[Rule]", "0.21968`"}], ",", 
   RowBox[{"Lc", "\[Rule]", "0.4064`"}], ",", 
   RowBox[{"mt", "\[Rule]", "3.86506`"}], ",", 
   RowBox[{"ctx", "\[Rule]", "0.`"}], ",", 
   RowBox[{"ctz", "\[Rule]", "0.21968`"}], ",", 
   RowBox[{"Lt", "\[Rule]", "0.4064`"}], ",", 
   RowBox[{"mT", "\[Rule]", "10.41876`"}], ",", 
   RowBox[{"cTx", "\[Rule]", "0.`"}], ",", 
   RowBox[{"cTz", "\[Rule]", "0.2511`"}], ",", 
   RowBox[{"LT", "\[Rule]", "0.2511`"}], ",", 
   RowBox[{"Lboom", "\[Rule]", "2.1209`"}]}], "}"}]], "Output",
 CellChangeTimes->{3.621251829045434*^9, 3.621252402166215*^9, 
  3.621252727851843*^9, 3.6212555088849087`*^9}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Link Masses", "Subsection",
 CellChangeTimes->{{3.603300825103746*^9, 3.603300826799968*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{"masses", "=", 
   RowBox[{"{", 
    RowBox[{
    "mf", ",", "mc", ",", "mt", ",", "mT", ",", "mt", ",", "mc", ",", "mf"}], 
    "}"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"mass", "=", 
  RowBox[{
   RowBox[{
    RowBox[{"Total", "[", "masses", "]"}], "/.", "constsubs"}], "//", 
   "N"}]}]}], "Input",
 CellChangeTimes->{{3.603300852617535*^9, 3.603300860592175*^9}, {
  3.603301254009371*^9, 3.603301267096883*^9}, {3.612542720447756*^9, 
  3.6125427209438057`*^9}, {3.6125427707857895`*^9, 3.6125427729380045`*^9}}],

Cell[BoxData["28.181`"], "Output",
 CellChangeTimes->{{3.61254278039575*^9, 3.6125428118128915`*^9}, 
   3.612542860231733*^9, {3.6125430309198*^9, 3.612543031967905*^9}, 
   3.6125432879044957`*^9, 3.6125438700997095`*^9, 3.612544219309627*^9, 
   3.6125448163843284`*^9, 3.6125455248551683`*^9, 3.6128084143192387`*^9, 
   3.612832818553327*^9, 3.612834355154216*^9, 3.612871585790689*^9, 
   3.6128738538744745`*^9, 3.6128845061906*^9, 3.612884851906168*^9, 
   3.6128855375517254`*^9, 3.6131491107644143`*^9, 3.6131495875603557`*^9, 
   3.615832978671128*^9, 3.616935875071986*^9, 3.6169362859940743`*^9, 
   3.6169435624806504`*^9, 3.616948936389988*^9, 3.6169531170490117`*^9, 
   3.617102382645528*^9, 3.6200653173586235`*^9, 3.6200685832476907`*^9, 
   3.621252402235218*^9, 3.6212527278768444`*^9, 3.6212555089139104`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    FractionBox["4811", "500000"], "*", 
    RowBox[{"51.38", "/", "1.2"}]}], "//", "RationalizeEx"}], " ", 
  RowBox[{"(*", 
   RowBox[{"What", " ", "is", " ", 
    RowBox[{"this", "?"}]}], "*)"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6077773935521717`*^9, 3.60777742066394*^9}, {
  3.6094335334810047`*^9, 3.609433546613923*^9}, {3.609510562701622*^9, 
  3.609510591447527*^9}, {3.6106401912011547`*^9, 3.610640192623073*^9}, {
  3.6125430389796057`*^9, 3.6125430493686447`*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Gravity", "Subsection",
 CellChangeTimes->{{3.6032995387214813`*^9, 3.603299539353848*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"AppendTo", "[", 
   RowBox[{"constsubs", ",", 
    RowBox[{
     RowBox[{"grav", "\[Rule]", "9.81"}], "//", "RationalizeEx"}]}], "]"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.603298771818989*^9, 3.603298780352153*^9}, {
  3.603306331783038*^9, 3.603306333453094*^9}, {3.6039768143654747`*^9, 
  3.603976814564272*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Basic Matrices", "Subsection",
 CellChangeTimes->{{3.603304498647057*^9, 3.60330449994975*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"I3", "=", 
   RowBox[{"IdentityMatrix", "[", "3", "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"Z3", "=", 
   RowBox[{"ConstantArray", "[", 
    RowBox[{"0", ",", 
     RowBox[{"{", 
      RowBox[{"3", ",", "3"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"I4", "=", 
   RowBox[{"IdentityMatrix", "[", "4", "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.603300729575137*^9, 3.603300786664768*^9}, {
  3.603300914076714*^9, 3.603300924010788*^9}, {3.6033024511475782`*^9, 
  3.603302454320877*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Inertia Tensors", "Subsection",
 CellChangeTimes->{{3.603299541410116*^9, 3.603299545949964*^9}}],

Cell["Left foot, Left ankle, Left calf, left thigh, torso", "Text",
 CellChangeTimes->{{3.603299694123694*^9, 3.603299698955042*^9}, {
  3.6069616674170237`*^9, 3.606961674704282*^9}, {3.607777446800593*^9, 
  3.607777448231497*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  SubscriptBox["\[ScriptCapitalI]", "lf"], "=", " ", 
  RowBox[{"Rationalize", "[", 
   RowBox[{
    RowBox[{
     RowBox[{"(", GridBox[{
        {"1541037.64", "53192.75", 
         RowBox[{"-", "722846.62"}]},
        {"53192.75", "8982671.3", 
         RowBox[{"-", "22618.87"}]},
        {
         RowBox[{"-", "722846.62"}], 
         RowBox[{"-", "22618.87"}], "8498063.5"}
       }], ")"}], "/", "1000000000"}], ",", 
    RowBox[{"1", "/", "1000000000"}]}], "]"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["\[ScriptCapitalI]", "lc"], "=", 
   RowBox[{"Rationalize", "[", 
    RowBox[{
     RowBox[{
      RowBox[{"(", GridBox[{
         {"29032438.82", 
          RowBox[{"-", "153737.5"}], "191685.6"},
         {
          RowBox[{"-", "153737.5"}], "28425223.81", "472879.37"},
         {"191685.6", "472879.37", "3199555.09"}
        }], ")"}], "/", "1000000000"}], ",", 
     RowBox[{"1", "/", "1000000000"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["\[ScriptCapitalI]", "lt"], "=", 
   RowBox[{"Rationalize", "[", 
    RowBox[{
     RowBox[{
      RowBox[{"(", GridBox[{
         {"29032438.82", 
          RowBox[{"-", "153737.5"}], "191685.6"},
         {
          RowBox[{"-", "153737.5"}], "28425223.81", "472879.37"},
         {"191685.6", "472879.37", "3199555.09"}
        }], ")"}], "/", "1000000000"}], ",", 
     RowBox[{"1", "/", "1000000000"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["\[ScriptCapitalI]", "T"], "=", "\[InvisibleSpace]", 
   RowBox[{"Rationalize", "[", 
    RowBox[{
     RowBox[{
      RowBox[{"(", GridBox[{
         {"188576345.34", 
          RowBox[{"-", "40410.33"}], 
          RowBox[{"-", "2438220.72"}]},
         {
          RowBox[{"-", "40410.33"}], "147542602", 
          RowBox[{"-", "414660.3"}]},
         {
          RowBox[{"-", "2438220.72"}], 
          RowBox[{"-", "414660.3"}], "59483657.62"}
        }], ")"}], "/", "1000000000"}], ",", 
     RowBox[{"1", "/", "1000000000"}]}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.6069613461982737`*^9, 3.606961397249714*^9}, {
   3.606961558965184*^9, 3.606961576280237*^9}, {3.60696162328106*^9, 
   3.6069616534046917`*^9}, {3.6070158819145613`*^9, 
   3.6070158889308443`*^9}, {3.607028303311665*^9, 3.6070283056339407`*^9}, {
   3.607124583960622*^9, 3.607124592271894*^9}, {3.607132960290864*^9, 
   3.607132964658373*^9}, {3.607148683642271*^9, 3.607148704077697*^9}, {
   3.607149573249414*^9, 3.607149576900878*^9}, {3.607149775125503*^9, 
   3.607149781021723*^9}, {3.6071714987237*^9, 3.607171522353653*^9}, {
   3.60717228588256*^9, 3.607172288511348*^9}, {3.607218721270236*^9, 
   3.6072187271991796`*^9}, {3.607224721235717*^9, 3.607224730583189*^9}, {
   3.608561350078392*^9, 3.608561388169524*^9}, {3.6094336381323547`*^9, 
   3.609433647684161*^9}, {3.6094369428781137`*^9, 3.6094369481935463`*^9}, 
   3.609510603542893*^9, {3.609607437270109*^9, 3.609607517504016*^9}, {
   3.609629067277005*^9, 3.609629102679469*^9}, 3.610635470374591*^9, 
   3.6106372359319773`*^9, 3.610640197840026*^9, {3.612543086357343*^9, 
   3.612543128171524*^9}, {3.6212511716488333`*^9, 3.62125117212086*^9}, {
   3.621251910294081*^9, 3.6212519245808983`*^9}, {3.621251964737195*^9, 
   3.621251975876832*^9}, {3.621252696102027*^9, 3.621252723627601*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     FractionBox["23", "14925"], ",", 
     FractionBox["2", "37599"], ",", 
     RowBox[{"-", 
      FractionBox["19", "26285"]}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     FractionBox["2", "37599"], ",", 
     FractionBox["381", "42415"], ",", 
     RowBox[{"-", 
      FractionBox["1", "44210"]}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"-", 
      FractionBox["19", "26285"]}], ",", 
     RowBox[{"-", 
      FractionBox["1", "44210"]}], ",", 
     FractionBox["371", "43657"]}], "}"}]}], "}"}]], "Output",
 CellChangeTimes->{{3.621252699374214*^9, 3.621252727962849*^9}, 
   3.6212555090239167`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{
    RowBox[{"Assuming", " ", "symmetric"}], ",", " ", 
    RowBox[{
     RowBox[{"just", " ", "mirroring", " ", "about", " ", "the", " ", "y"}], 
     "-", "axis"}]}], " ", "*)"}], "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{"Imirror", "=", 
    RowBox[{"(", GridBox[{
       {"1", 
        RowBox[{"-", "1"}], "1"},
       {
        RowBox[{"-", "1"}], "1", 
        RowBox[{"-", "1"}]},
       {"1", 
        RowBox[{"-", "1"}], "1"}
      }], ")"}]}], ";"}]}]], "Input",
 CellChangeTimes->{{3.6010302277946033`*^9, 3.6010302616806927`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"IT", "=", 
   RowBox[{"{", "\[IndentingNewLine]", 
    RowBox[{
     SubscriptBox["\[ScriptCapitalI]", "lf"], ",", "\[IndentingNewLine]", 
     SubscriptBox["\[ScriptCapitalI]", "lc"], ",", "\[IndentingNewLine]", 
     SubscriptBox["\[ScriptCapitalI]", "lt"], ",", "\[IndentingNewLine]", 
     SubscriptBox["\[ScriptCapitalI]", "T"], ",", "\[IndentingNewLine]", 
     RowBox[{"Imirror", "*", 
      SubscriptBox["\[ScriptCapitalI]", "lt"]}], ",", "\[IndentingNewLine]", 
     RowBox[{"Imirror", "*", 
      SubscriptBox["\[ScriptCapitalI]", "lc"]}], ",", "\[IndentingNewLine]", 
     SubscriptBox["\[ScriptCapitalI]", "lf"]}], "\[IndentingNewLine]", 
    "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.603299685191826*^9, 3.603299750626926*^9}, 
   3.6033026701679*^9, {3.6033039820895443`*^9, 3.60330398556317*^9}, {
   3.603547739896171*^9, 3.6035477494154453`*^9}, {3.606961694062791*^9, 
   3.606961714973926*^9}, {3.607171529782426*^9, 3.607171533468609*^9}, {
   3.607172295959206*^9, 3.607172296871224*^9}, 3.6074784457820673`*^9, {
   3.609433659521517*^9, 3.6094336746975193`*^9}, {3.609436954014063*^9, 
   3.609436961442349*^9}, 3.6106354762719307`*^9, {3.612543143545061*^9, 
   3.6125431512878356`*^9}, {3.621251979700051*^9, 3.6212519902026515`*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Mass Matrices", "Subsection",
 CellChangeTimes->{{3.603302966558034*^9, 3.603302973828126*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"MM", "=", 
   RowBox[{"Table", "[", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"BlockDiagonalMatrix", "[", 
      RowBox[{"{", 
       RowBox[{
        RowBox[{"I3", "*", 
         RowBox[{"masses", "[", 
          RowBox[{"[", "i", "]"}], "]"}]}], ",", 
        RowBox[{"IT", "[", 
         RowBox[{"[", "i", "]"}], "]"}]}], "}"}], "]"}], 
     "\[IndentingNewLine]", ",", "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"i", ",", "ndof"}], "}"}]}], "\[IndentingNewLine]", "]"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.6033027005746326`*^9, 3.603302707025519*^9}, {
  3.60330291095781*^9, 3.603302945641811*^9}, {3.60943761326117*^9, 
  3.6094376271836452`*^9}, {3.609630141772026*^9, 3.6096301922646923`*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Boom", "Subsection",
 CellChangeTimes->{{3.6033030991671753`*^9, 3.603303099512405*^9}}],

Cell["Boom is a special case", "Text",
 CellChangeTimes->{{3.603303108661237*^9, 3.603303110586286*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   SubscriptBox["\[ScriptCapitalI]", "boom"], "=", 
   RowBox[{"(", "\[NoBreak]", GridBox[{
      {
       FractionBox["1583", "100"], 
       RowBox[{"-", 
        FractionBox["11", "100"]}], 
       FractionBox["3", "50"]},
      {
       RowBox[{"-", 
        FractionBox["11", "100"]}], 
       FractionBox["567", "100"], 
       RowBox[{"-", 
        FractionBox["29", "100"]}]},
      {
       FractionBox["3", "50"], 
       RowBox[{"-", 
        FractionBox["29", "100"]}], 
       FractionBox["1039", "100"]}
     },
     GridBoxAlignment->{
      "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}},
        "RowsIndexed" -> {}},
     GridBoxSpacings->{"Columns" -> {
         Offset[0.27999999999999997`], {
          Offset[0.7]}, 
         Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
         Offset[0.2], {
          Offset[0.4]}, 
         Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.601034785070566*^9, 3.6010347902691593`*^9}, {
  3.601035483662217*^9, 3.601035531862577*^9}, {3.601036017966194*^9, 
  3.60103602038157*^9}, {3.6010364439815683`*^9, 3.6010364981491756`*^9}, {
  3.603303020786695*^9, 3.603303037780788*^9}, {3.603303101164423*^9, 
  3.6033031169690247`*^9}, {3.603303186712987*^9, 3.603303188192401*^9}}],

Cell["\<\
It affects translation energy at the hip, so we will simply add it to the \
stance hip\[CloseCurlyQuote]s kinetic energy / inertia matrix later on\
\>", "Text",
 CellChangeTimes->{{3.603303121755054*^9, 3.6033031797804613`*^9}, {
  3.603303239164187*^9, 3.60330325092061*^9}, {3.603303295250749*^9, 
  3.603303295392334*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"MMBoom", "=", 
   RowBox[{
    RowBox[{"BlockDiagonalMatrix", "[", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"DiagonalMatrix", "[", 
        RowBox[{"Diagonal", "[", 
         RowBox[{
          SubscriptBox["\[ScriptCapitalI]", "boom"], "/", 
          SuperscriptBox["Lboom", "2"]}], "]"}], "]"}], ",", "Z3"}], "}"}], 
     "]"}], "/.", "constsubs"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.603303181763156*^9, 3.603303229643556*^9}, {
   3.603303826835717*^9, 3.603303840876813*^9}, {3.6039767496801023`*^9, 
   3.603976762649947*^9}, 3.603985065882094*^9, 3.604334378171468*^9}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MMBoom", "//", "N"}]], "Input",
 CellChangeTimes->{{3.6060634102626553`*^9, 3.606063411835042*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
    "3.519172300634393`", ",", "0.`", ",", "0.`", ",", "0.`", ",", "0.`", ",",
      "0.`"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
    "0.`", ",", "1.2604994911305754`", ",", "0.`", ",", "0.`", ",", "0.`", 
     ",", "0.`"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
    "0.`", ",", "0.`", ",", "2.309804182159908`", ",", "0.`", ",", "0.`", ",",
      "0.`"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
    "0.`", ",", "0.`", ",", "0.`", ",", "0.`", ",", "0.`", ",", "0.`"}], 
    "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
    "0.`", ",", "0.`", ",", "0.`", ",", "0.`", ",", "0.`", ",", "0.`"}], 
    "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
    "0.`", ",", "0.`", ",", "0.`", ",", "0.`", ",", "0.`", ",", "0.`"}], 
    "}"}]}], "}"}]], "Output",
 CellChangeTimes->{
  3.6060634121375227`*^9, 3.60695183096419*^9, 3.606961734993743*^9, 
   3.6069640155196943`*^9, 3.6069765568426228`*^9, 3.6070158928443947`*^9, 
   3.607020738717636*^9, 3.607027999503986*^9, 3.6070283131355124`*^9, 
   3.607045576123962*^9, 3.607052414422826*^9, 3.60712464295544*^9, 
   3.60713298375697*^9, 3.607133488746126*^9, 3.607148714780757*^9, 
   3.6071495915103188`*^9, 3.60714978365875*^9, 3.607149959887129*^9, 
   3.607150325969336*^9, 3.607171538650196*^9, 3.607172301736374*^9, 
   3.607173522558814*^9, 3.607173925493537*^9, 3.607187779250195*^9, 
   3.607197966640236*^9, 3.607198053979837*^9, 3.607205472132141*^9, 
   3.607206960209096*^9, 3.607218562468033*^9, 3.607218736731024*^9, 
   3.607224734851302*^9, 3.607315402681623*^9, 3.607477924273662*^9, 
   3.6074878072243137`*^9, 3.607488038160945*^9, 3.607555736343624*^9, 
   3.607563068600285*^9, 3.607715446048504*^9, 3.6077232132750883`*^9, 
   3.607754073866678*^9, 3.60777759660035*^9, 3.607779012360203*^9, {
   3.607779305212864*^9, 3.607779319549398*^9}, 3.608223371763571*^9, 
   3.608340450743425*^9, 3.60846776036163*^9, 3.608470117575183*^9, 
   3.6085578541735077`*^9, 3.608561978336*^9, 3.608573341199088*^9, 
   3.608573979119526*^9, 3.6088395190013523`*^9, 3.609437633875594*^9, 
   3.609441904053858*^9, 3.6094664738307133`*^9, 3.609498908763788*^9, 
   3.609502747358803*^9, 3.6095034987442102`*^9, 3.609510622728484*^9, 
   3.609515636800313*^9, 3.609586093286265*^9, {3.609607547371702*^9, 
   3.609607571403092*^9}, 3.6096078401769333`*^9, 3.609608812730402*^9, {
   3.609609129480735*^9, 3.6096091524834642`*^9}, 3.609620818878766*^9, 
   3.6096290878370247`*^9, 3.609638016099688*^9, 3.609674000344345*^9, 
   3.609775141743991*^9, 3.6097972207109632`*^9, 3.610192875665148*^9, 
   3.6102073243393173`*^9, 3.610232321575706*^9, 3.6102398491087713`*^9, 
   3.610275421629978*^9, 3.6102768508989058`*^9, 3.610295944850235*^9, 
   3.610328841909996*^9, 3.610379480066464*^9, 3.610380081784616*^9, 
   3.6104538084138603`*^9, 3.6106410857384033`*^9, 3.610651925097679*^9, 
   3.610670379336967*^9, 3.61067106388451*^9, 3.610848588548751*^9, 
   3.6125223326979733`*^9, 3.612542811874898*^9, 3.612543287958501*^9, 
   3.6125438701687164`*^9, 3.612544219367633*^9, 3.6125448164433346`*^9, 
   3.612545524940177*^9, 3.6128084143782387`*^9, 3.612832818799341*^9, 
   3.6128343552852235`*^9, 3.6128715858616962`*^9, 3.6128738539504824`*^9, 
   3.6128845062496057`*^9, 3.612884851985176*^9, 3.612885537622733*^9, 
   3.6131491108524055`*^9, 3.6131495877463555`*^9, 3.615832978732128*^9, 
   3.6169358751949987`*^9, 3.6169362860930843`*^9, 3.6169435626126633`*^9, 
   3.6169489365470033`*^9, 3.61695311713302*^9, 3.617102382758539*^9, 
   3.620065317428623*^9, 3.6200685833106966`*^9, 3.621252402423229*^9, 
   3.621252728135859*^9, 3.621255509344935*^9}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Motor Inertias (Need to be modified!)", "Subsection",
 CellChangeTimes->{{3.603303879617588*^9, 3.603303881056768*^9}, {
  3.6212512020765734`*^9, 3.6212512124651675`*^9}}],

Cell["\<\
Motor Inertia * Gear Ratio Squared + Gear Box Inertia (how much is the gear \
ratio?)\
\>", "Text",
 CellChangeTimes->{{3.603304030945436*^9, 3.603304044152831*^9}, {
  3.607478421072707*^9, 3.60747843772836*^9}, {3.6094338420318727`*^9, 
  3.6094338427596807`*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{"largeMotorInertia", "=", 
  RowBox[{
   RowBox[{
    RowBox[{"MKS", "[", 
     RowBox[{
      RowBox[{"(", 
       RowBox[{
        RowBox[{"4661.714", " ", 
         RowBox[{"30", "^", "2"}]}], "+", ".4"}], ")"}], " ", "Gram", " ", 
      RowBox[{"Centimeter", "^", "2"}]}], "]"}], "/", 
    RowBox[{"(", 
     RowBox[{"Kilogram", " ", 
      RowBox[{"Meter", "^", "2"}]}], ")"}]}], "//", 
   "RationalizeAny"}]}], "\[IndentingNewLine]", 
 RowBox[{"smallMotorInertia", "=", 
  RowBox[{
   RowBox[{
    RowBox[{"MKS", "[", 
     RowBox[{
      RowBox[{"(", 
       RowBox[{
        RowBox[{"1446.62", " ", 
         RowBox[{"100", "^", "2"}]}], "+", ".4"}], ")"}], " ", "Gram", " ", 
      RowBox[{"Centimeter", "^", "2"}]}], "]"}], "/", 
    RowBox[{"(", 
     RowBox[{"Kilogram", " ", 
      RowBox[{"Meter", "^", "2"}]}], ")"}]}], "//", 
   "RationalizeAny"}]}]}], "Input",
 CellChangeTimes->{{3.603303893819491*^9, 3.6033039116956244`*^9}, {
   3.60330394532414*^9, 3.603303955880392*^9}, 3.603304016520149*^9, {
   3.60330629357196*^9, 3.603306295839522*^9}, {3.6033064367941437`*^9, 
   3.603306437961322*^9}, 3.607020749615786*^9, {3.608557872169232*^9, 
   3.608557887271523*^9}, {3.609433958569532*^9, 3.609433979785371*^9}, 
   3.6094341310066767`*^9, {3.609434176866448*^9, 3.609434235300447*^9}, {
   3.6094342923719378`*^9, 3.609434293971163*^9}, {3.6094343332311583`*^9, 
   3.609434334779456*^9}}],

Cell[BoxData[
 FractionBox["4195543", "10000000"]], "Output",
 CellChangeTimes->{
  3.6070207500388412`*^9, 3.607027999522257*^9, 3.607028313144041*^9, 
   3.607045576139584*^9, 3.6070524144666653`*^9, 3.607124642979163*^9, 
   3.6071329837786217`*^9, 3.6071334969686337`*^9, 3.607148714801567*^9, 
   3.607149591546236*^9, 3.60714978366823*^9, 3.607149959905129*^9, 
   3.607150325994081*^9, 3.607171538747966*^9, 3.607172302047924*^9, 
   3.607173522585216*^9, 3.607173925517571*^9, 3.6071877792871237`*^9, 
   3.6071979666594877`*^9, 3.6071980541090918`*^9, 3.607205472178513*^9, 
   3.607206960259541*^9, 3.60721856250704*^9, 3.607218736759989*^9, 
   3.6072247349075947`*^9, 3.6073154027314034`*^9, 3.607477924282217*^9, 
   3.607487807244217*^9, 3.6074880381677237`*^9, 3.6075557363604307`*^9, 
   3.607563068608762*^9, 3.607715446091879*^9, 3.607723213318757*^9, 
   3.6077540739179783`*^9, 3.607777465762991*^9, 3.607777596656041*^9, 
   3.607779012383772*^9, {3.607779305239678*^9, 3.6077793195766478`*^9}, 
   3.6082233717912827`*^9, 3.608340454406281*^9, 3.608467760420525*^9, 
   3.608470117620555*^9, {3.6085578675771027`*^9, 3.608557887870955*^9}, 
   3.608561978374563*^9, 3.608573341220737*^9, 3.608573979155246*^9, 
   3.6088395190272818`*^9, {3.60943418843264*^9, 3.6094342356780357`*^9}, 
   3.609434294242594*^9, 3.609434335554915*^9, 3.6094376383578463`*^9, 
   3.609441904079026*^9, 3.609466473837822*^9, 3.609498908790503*^9, 
   3.6095027474190683`*^9, 3.6095034988118134`*^9, 3.609510622759691*^9, 
   3.609515636821827*^9, 3.60958609336043*^9, {3.609607547406062*^9, 
   3.609607571425634*^9}, 3.609607840198544*^9, 3.609608812754211*^9, 
   3.6096208189038486`*^9, 3.609629087867378*^9, 3.609638016126196*^9, 
   3.609674000409071*^9, 3.609775141804863*^9, 3.609797220731369*^9, 
   3.610192875776793*^9, 3.610207324371891*^9, 3.6102323215965967`*^9, 
   3.610239849119193*^9, 3.6102754216825647`*^9, 3.610276851020013*^9, 
   3.610295944928245*^9, 3.6103288419321413`*^9, 3.61037948012505*^9, 
   3.610380081906848*^9, 3.610453808437211*^9, 3.610641085759428*^9, 
   3.6106519251177197`*^9, 3.610670379357768*^9, 3.61067106391973*^9, 
   3.61084858856383*^9, 3.612522332751979*^9, 3.6125428119279027`*^9, 
   3.6125432880105066`*^9, 3.6125438702357235`*^9, 3.6125442194266386`*^9, 
   3.6125448164933395`*^9, 3.612545525021185*^9, 3.612808414426239*^9, 
   3.612832818902347*^9, 3.612834355352227*^9, 3.612871585909701*^9, 
   3.612873854005488*^9, 3.6128845062866096`*^9, 3.6128848520411816`*^9, 
   3.6128855376717377`*^9, 3.613149110919399*^9, 3.6131495878913555`*^9, 
   3.615832978762128*^9, 3.6169358752570047`*^9, 3.6169362861740923`*^9, 
   3.616943562723675*^9, 3.616948936683017*^9, 3.6169531171860256`*^9, 
   3.617102382798543*^9, 3.620065317442623*^9, 3.6200685833246984`*^9, 
   3.62125240244423*^9, 3.6212527281618605`*^9, 3.621255509383937*^9}],

Cell[BoxData[
 FractionBox["222901727", "154084501"]], "Output",
 CellChangeTimes->{
  3.6070207500388412`*^9, 3.607027999522257*^9, 3.607028313144041*^9, 
   3.607045576139584*^9, 3.6070524144666653`*^9, 3.607124642979163*^9, 
   3.6071329837786217`*^9, 3.6071334969686337`*^9, 3.607148714801567*^9, 
   3.607149591546236*^9, 3.60714978366823*^9, 3.607149959905129*^9, 
   3.607150325994081*^9, 3.607171538747966*^9, 3.607172302047924*^9, 
   3.607173522585216*^9, 3.607173925517571*^9, 3.6071877792871237`*^9, 
   3.6071979666594877`*^9, 3.6071980541090918`*^9, 3.607205472178513*^9, 
   3.607206960259541*^9, 3.60721856250704*^9, 3.607218736759989*^9, 
   3.6072247349075947`*^9, 3.6073154027314034`*^9, 3.607477924282217*^9, 
   3.607487807244217*^9, 3.6074880381677237`*^9, 3.6075557363604307`*^9, 
   3.607563068608762*^9, 3.607715446091879*^9, 3.607723213318757*^9, 
   3.6077540739179783`*^9, 3.607777465762991*^9, 3.607777596656041*^9, 
   3.607779012383772*^9, {3.607779305239678*^9, 3.6077793195766478`*^9}, 
   3.6082233717912827`*^9, 3.608340454406281*^9, 3.608467760420525*^9, 
   3.608470117620555*^9, {3.6085578675771027`*^9, 3.608557887870955*^9}, 
   3.608561978374563*^9, 3.608573341220737*^9, 3.608573979155246*^9, 
   3.6088395190272818`*^9, {3.60943418843264*^9, 3.6094342356780357`*^9}, 
   3.609434294242594*^9, 3.609434335554915*^9, 3.6094376383578463`*^9, 
   3.609441904079026*^9, 3.609466473837822*^9, 3.609498908790503*^9, 
   3.6095027474190683`*^9, 3.6095034988118134`*^9, 3.609510622759691*^9, 
   3.609515636821827*^9, 3.60958609336043*^9, {3.609607547406062*^9, 
   3.609607571425634*^9}, 3.609607840198544*^9, 3.609608812754211*^9, 
   3.6096208189038486`*^9, 3.609629087867378*^9, 3.609638016126196*^9, 
   3.609674000409071*^9, 3.609775141804863*^9, 3.609797220731369*^9, 
   3.610192875776793*^9, 3.610207324371891*^9, 3.6102323215965967`*^9, 
   3.610239849119193*^9, 3.6102754216825647`*^9, 3.610276851020013*^9, 
   3.610295944928245*^9, 3.6103288419321413`*^9, 3.61037948012505*^9, 
   3.610380081906848*^9, 3.610453808437211*^9, 3.610641085759428*^9, 
   3.6106519251177197`*^9, 3.610670379357768*^9, 3.61067106391973*^9, 
   3.61084858856383*^9, 3.612522332751979*^9, 3.6125428119279027`*^9, 
   3.6125432880105066`*^9, 3.6125438702357235`*^9, 3.6125442194266386`*^9, 
   3.6125448164933395`*^9, 3.612545525021185*^9, 3.612808414426239*^9, 
   3.612832818902347*^9, 3.612834355352227*^9, 3.612871585909701*^9, 
   3.612873854005488*^9, 3.6128845062866096`*^9, 3.6128848520411816`*^9, 
   3.6128855376717377`*^9, 3.613149110919399*^9, 3.6131495878913555`*^9, 
   3.615832978762128*^9, 3.6169358752570047`*^9, 3.6169362861740923`*^9, 
   3.616943562723675*^9, 3.616948936683017*^9, 3.6169531171860256`*^9, 
   3.617102382798543*^9, 3.620065317442623*^9, 3.6200685833246984`*^9, 
   3.62125240244423*^9, 3.6212527281618605`*^9, 3.6212555093899374`*^9}]
}, Open  ]]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Base Configuration", "Section",
 CellChangeTimes->{{3.6032987946335897`*^9, 3.603298797231127*^9}}],

Cell["\<\
Using 1-based indexing, where 0 denotes the world / root link.\
\>", "Text",
 CellChangeTimes->{{3.6032990240754833`*^9, 3.603299037590364*^9}, 
   3.6074780283522453`*^9, {3.609437653834777*^9, 3.609437656894758*^9}}],

Cell["\<\
Using nomenclature from Murray-Li-Sastry
Note that twists are defined with respect to the world in the base \
configuration, not relative to its parent.
The twist then creates a transform that rotates it about the origin of the \
joint.\
\>", "Text",
 CellChangeTimes->{{3.603298883673048*^9, 3.6032988943439713`*^9}, {
  3.603299144758916*^9, 3.6032991738361597`*^9}}],

Cell[CellGroupData[{

Cell["\[OpenCurlyDoubleQuote]g\[CloseCurlyDoubleQuote] - Homogeneous \
transform", "Item",
 CellChangeTimes->{{3.6032989683073387`*^9, 3.603298973310524*^9}}],

Cell["\[OpenCurlyDoubleQuote]\[Xi]\[CloseCurlyDoubleQuote] - Twist", "Item",
 CellChangeTimes->{{3.6032989745948553`*^9, 3.6032989791227627`*^9}}],

Cell["\[OpenCurlyDoubleQuote]p\[CloseCurlyDoubleQuote] - Position", "Item",
 CellChangeTimes->{{3.603298979699026*^9, 3.603298988698349*^9}}],

Cell["\[OpenCurlyDoubleQuote]R\[CloseCurlyDoubleQuote] - Rotation matrix", \
"Item",
 CellChangeTimes->{{3.603298989035654*^9, 3.603298992910635*^9}}]
}, Open  ]],

Cell["Frames", "Text",
 CellChangeTimes->{{3.603298998121937*^9, 3.603298998493064*^9}}],

Cell[CellGroupData[{

Cell["\[OpenCurlyDoubleQuote]s\[CloseCurlyDoubleQuote] - base frame (world, \
0)", "Item",
 CellChangeTimes->{{3.603299003555558*^9, 3.603299009200433*^9}}],

Cell[TextData[{
 Cell[BoxData[
  FormBox[
  "\"\<\\\"\\!\\(\\n\\*SubscriptBox[\\(l\\), \\(i\\)]\\)\>\"", 
   TraditionalForm]]],
 "\[CloseCurlyDoubleQuote] - link i"
}], "Item",
 CellChangeTimes->{{3.603299009647709*^9, 3.60329901961847*^9}}],

Cell[TextData[{
 Cell[BoxData[
  FormBox[
  "\"\<\\\"\\!\\(\\n\\*SubscriptBox[\\(j\\), \\(i\\)]\\)\>\"", 
   TraditionalForm]]],
 "\[CloseCurlyDoubleQuote] - joint i"
}], "Item",
 CellChangeTimes->{{3.603299040800398*^9, 3.603299045455132*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Joints", "Subsection",
 CellChangeTimes->{{3.603300207033184*^9, 3.603300208200575*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"q", "=", 
   RowBox[{"Vec", "[", 
    RowBox[{"Table", "[", 
     RowBox[{
      RowBox[{
       SubscriptBox["\[Theta]", "i"], "[", "t", "]"}], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "1", ",", "ndof"}], "}"}]}], "]"}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"dq", "=", 
   RowBox[{"D", "[", 
    RowBox[{"q", ",", "t"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.603300226555632*^9, 3.6033002682074213`*^9}, {
  3.6033011917378283`*^9, 3.603301205226227*^9}, {3.609437662383278*^9, 
  3.6094376658758507`*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"qb", "=", 
   RowBox[{"Vec", "[", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       SubscriptBox["r", "x"], "[", "t", "]"}], ",", 
      RowBox[{
       SubscriptBox["r", "z"], "[", "t", "]"}]}], "}"}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"dqb", "=", 
   RowBox[{"D", "[", 
    RowBox[{"qb", ",", "t"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.603300254096243*^9, 3.603300267260947*^9}, {
  3.603301210721178*^9, 3.603301216124673*^9}, {3.6033042885043583`*^9, 
  3.603304291012364*^9}, {3.603307544731289*^9, 3.603307548987769*^9}, {
  3.6094352000755577`*^9, 3.609435236299933*^9}, {3.6094376595354147`*^9, 
  3.609437659743025*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{"qe", "=", 
  RowBox[{"Join", "[", 
   RowBox[{"qb", ",", "q"}], "]"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"dqe", "=", 
   RowBox[{"Join", "[", 
    RowBox[{"dqb", ",", "dq"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.6033046880989237`*^9, 3.60330469871737*^9}, 
   3.609638251550765*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["r", "x"], "[", "t", "]"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["r", "z"], "[", "t", "]"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["\[Theta]", "7"], "[", "t", "]"}], "}"}]}], "}"}]], "Output",
 CellChangeTimes->CompressedData["
1:eJwV0Gkow3EAxvFNMm2RkiMvSGiOEsq8EX5z5MjKClvJOW8WEyEpI0rO3KKN
cjSlHIUXjDIykrYUXuAN8cdvQo613M/vxdOn5+03sLRKXs7n8XgSjDfRu3B2
Q0nBRlzQPYyfjB5gFtadrjNHRTIXv1tKpFuNIuZak9MDs6WYyw6Gl2FS7S0U
tkX2PEJNh9nsgJxdoPmGsuqEIzeOkm9TSrM7HLtcPvaBoT4XV2I4XmvXJUFx
0AnHbNyxcCoYPNav2Gbfg8zswXtprsECZ81JX0w30WbkMezuksyH3FEy6D9u
y6OUhM9pbcXwPIsvLoHTDQdVTKteo2PqrR4cM/ljKqEU5gxYdNdQWFTU/gQH
MyrTnqH/UGIt30ZJusrU5wSXAzN3BVDb0vrE1IxIUlzh++yVvQMqvJpjOqHa
qKyZe6EkP1btML1SYonYj9iBw0vK9T24ovZVHsDVB0PZIVT8nqd6vlFiDFhy
3nBQsh1l0xthhbfc8POJvnKBlSmrXwz/g//VN/oq
  "]]
}, Open  ]],

Cell[BoxData[{
 RowBox[{
  RowBox[{"qtest", "=", 
   RowBox[{"Flatten", "[", "qe", "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"dqtest", "=", 
   RowBox[{"Flatten", "[", "dqe", "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.607124991185403*^9, 3.607124999248588*^9}, {
  3.6071250332009373`*^9, 3.60712503773531*^9}, {3.6071250970241003`*^9, 
  3.6071251171695127`*^9}, {3.6071252429943438`*^9, 3.60712524426466*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Joint Offsets", "Subsection",
 CellChangeTimes->{{3.603298924873877*^9, 3.603298926850971*^9}, {
  3.603299211488014*^9, 3.6032992127570477`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"offsets", "=", 
   RowBox[{"{", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"-", "lt"}], ",", "0", ",", "hf"}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"Stance", " ", "Foot"}], "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "Lc"}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"Stance", " ", "Knee"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "Lt"}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"Stance", " ", "Hip"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"Nonstance", " ", "Hip"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", 
       RowBox[{"-", "Lt"}]}], "}"}], " ", ",", 
     RowBox[{"(*", " ", 
      RowBox[{"Nonstance", " ", "Knee"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", 
       RowBox[{"-", "Lc"}]}], "}"}]}], " ", 
    RowBox[{"(*", " ", 
     RowBox[{"Nonstance", " ", "Foot"}], " ", "*)"}], "\[IndentingNewLine]", 
    "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.603299957186201*^9, 3.603300019707548*^9}, {
   3.606961766191813*^9, 3.606961843296071*^9}, {3.607132995494315*^9, 
   3.6071330076112137`*^9}, {3.60713352551005*^9, 3.607133541657423*^9}, {
   3.609435302110882*^9, 3.609435305992648*^9}, {3.609435379398159*^9, 
   3.609435485359586*^9}, {3.6094376766744423`*^9, 3.6094377175970993`*^9}, {
   3.6094377768906813`*^9, 3.609437795842497*^9}, 3.609438463972068*^9, 
   3.609607621317415*^9, 3.6096076526386633`*^9, 3.609608851471242*^9, {
   3.6101917620686493`*^9, 3.610191762915629*^9}, 3.610640825816111*^9, {
   3.610640861897232*^9, 3.610640863804731*^9}, {3.6125431824669533`*^9, 
   3.6125431854332495`*^9}, 3.6125448098356733`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Link center of mass offsets", "Subsection",
 CellChangeTimes->{{3.6032991264476023`*^9, 3.603299130116762*^9}, {
  3.603299246570784*^9, 3.6032992473598022`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"coms", "=", 
   RowBox[{"{", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"cfx", ",", "0", ",", "cfz"}], "}"}], ",", 
     RowBox[{"(*", " ", 
      RowBox[{"Stance", " ", "Foot"}], "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"ccx", ",", "0", ",", "ccz"}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"Stance", " ", "Calf"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"ctx", ",", "0", ",", "ctz"}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"Stance", " ", "Thigh"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"cTx", ",", "0", ",", "cTz"}], "}"}], ",", " ", 
     RowBox[{"(*", " ", "Torso", " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"ctx", ",", "0", ",", 
       RowBox[{"ctz", "-", "Lt"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{
       RowBox[{"Nonstance", " ", "Thigh"}], " ", "-", " ", 
       RowBox[{
       "Will", " ", "mirror", " ", "from", " ", "stance", " ", "calf"}]}], 
      " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"ccx", ",", "0", ",", 
       RowBox[{"ccz", "-", "Lc"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"Nonstance", " ", "Calf"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"cfx", ",", "0", ",", 
       RowBox[{"cfz", "-", "hf"}]}], "}"}]}], "    ", 
    RowBox[{"(*", " ", 
     RowBox[{"Nonstance", " ", "Foot"}], "*)"}], "\[IndentingNewLine]", 
    "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.6032991322132273`*^9, 3.603299143312292*^9}, {
   3.6032991771426992`*^9, 3.6032992070220833`*^9}, {3.603299249743506*^9, 
   3.6032993624298058`*^9}, {3.6033000242511587`*^9, 3.603300094588904*^9}, {
   3.603300132732603*^9, 3.6033001409018173`*^9}, {3.606961871912446*^9, 
   3.6069619791905613`*^9}, {3.609437819796815*^9, 3.609437943613196*^9}, {
   3.609437985756423*^9, 3.609438039324505*^9}, 3.609607625010713*^9, {
   3.6101918198998547`*^9, 3.610191820508*^9}, {3.610640870334146*^9, 
   3.610640886127627*^9}, {3.612543189987705*^9, 3.6125431932020264`*^9}, 
   3.621252120208088*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Extra Positions", "Subsection",
 CellChangeTimes->{{3.6033016081071568`*^9, 3.6033016119274054`*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"extraPositions", "=", 
   RowBox[{"{", "\[IndentingNewLine]", 
    RowBox[{"(*", " ", 
     RowBox[{"{", 
      RowBox[{"symbol", ",", " ", 
       RowBox[{"parent", " ", "joint"}], ",", " ", "offset"}], "}"}], " ", 
     "*)"}], "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "sfoot"], ",", "1", ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"-", "lt"}], ",", "0", ",", "hf"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"stance", " ", "foot"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "stoe"], ",", "1", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"stance", " ", "toe"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "sheel"], ",", "1", ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "lt"}], "-", "lh"}], ",", "0", ",", "0"}], "}"}]}], 
      "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"stance", " ", "heel"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "sankle"], ",", "2", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"stance", " ", "ankle"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "sknee"], ",", "3", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"stance", " ", "knee"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "ship"], ",", "4", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"stance", " ", "hip"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "Torso"], ",", "4", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "LT"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", "torso", " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "nship"], ",", "5", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"nonstance", " ", "hip"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "nsknee"], ",", "6", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"nonstance", " ", "knee"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "nsankle"], ",", "7", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"nonstance", " ", "ankle"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "nsfoot"], ",", "7", ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
     RowBox[{"(*", " ", 
      RowBox[{"nonstance", " ", "foot"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "nstoe"], ",", "7", ",", 
       RowBox[{"{", 
        RowBox[{"lt", ",", "0", ",", 
         RowBox[{"-", "hf"}]}], "}"}]}], "}"}], ",", " ", 
     RowBox[{"(*", " ", 
      RowBox[{"nonstance", " ", "toe"}], " ", "*)"}], "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["g", "nsheel"], ",", "7", ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"-", "lh"}], ",", "0", ",", 
         RowBox[{"-", "hf"}]}], "}"}]}], "}"}]}], 
    RowBox[{"(*", " ", 
     RowBox[{"stance", " ", "heel"}], " ", "*)"}], "\[IndentingNewLine]", 
    "}"}]}], "\[IndentingNewLine]"}]], "Input",
 CellChangeTimes->{{3.603301615395122*^9, 3.6033017182220297`*^9}, {
   3.603306776880849*^9, 3.603306838208968*^9}, {3.603306908619858*^9, 
   3.6033069096538963`*^9}, {3.6033069469887667`*^9, 3.603306949719123*^9}, {
   3.606962894669469*^9, 3.6069629050480337`*^9}, {3.606962936921527*^9, 
   3.6069630022307177`*^9}, {3.6069630574519444`*^9, 3.6069630652354307`*^9}, 
   3.607150315906514*^9, {3.607151953564386*^9, 3.607151953699951*^9}, 
   3.607152099323807*^9, 3.607152164160987*^9, {3.609438078470183*^9, 
   3.609438159427644*^9}, {3.609438189791356*^9, 3.609438266339723*^9}, {
   3.609438595143525*^9, 3.60943860017402*^9}, 3.609674700973857*^9, {
   3.609674742199273*^9, 3.6096748640034113`*^9}, {3.609674994066597*^9, 
   3.609674994230853*^9}, {3.6096751979374237`*^9, 3.609675209896167*^9}, 
   3.609675246317945*^9, {3.6097752919288597`*^9, 3.609775298486219*^9}, {
   3.609775503440278*^9, 3.6097756116280527`*^9}, {3.609776211852213*^9, 
   3.60977621350002*^9}, {3.6097779854183493`*^9, 3.609777986355302*^9}, {
   3.610191852546775*^9, 3.6101918836861467`*^9}, {3.610192177271143*^9, 
   3.610192230928657*^9}, {3.610640952623671*^9, 3.610641014172772*^9}, {
   3.6106710258952703`*^9, 3.610671044722168*^9}, {3.610675520014838*^9, 
   3.610675531438547*^9}, {3.6125433591306176`*^9, 3.6125434408377876`*^9}, {
   3.612543917278427*^9, 3.612543955464245*^9}, {3.6125440609087887`*^9, 
   3.6125440694276404`*^9}, {3.612808404396239*^9, 3.6128084261342387`*^9}, 
   3.6128341136043997`*^9, 3.6128720333544407`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "sfoot"], ",", "1", ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"-", "lt"}], ",", "0", ",", "hf"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "stoe"], ",", "1", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "sheel"], ",", "1", ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{
        RowBox[{"-", "lh"}], "-", "lt"}], ",", "0", ",", "0"}], "}"}]}], 
    "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "sankle"], ",", "2", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "sknee"], ",", "3", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "ship"], ",", "4", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "Torso"], ",", "4", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "LT"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "nship"], ",", "5", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "nsknee"], ",", "6", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "nsankle"], ",", "7", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "nsfoot"], ",", "7", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "nstoe"], ",", "7", ",", 
     RowBox[{"{", 
      RowBox[{"lt", ",", "0", ",", 
       RowBox[{"-", "hf"}]}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     SubscriptBox["g", "nsheel"], ",", "7", ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"-", "lh"}], ",", "0", ",", 
       RowBox[{"-", "hf"}]}], "}"}]}], "}"}]}], "}"}]], "Output",
 CellChangeTimes->{{3.612808405172239*^9, 3.612808414488239*^9}, 
   3.612832819040355*^9, 3.61283411395442*^9, 3.6128343554852347`*^9, 
   3.612871586022712*^9, 3.612872033932499*^9, 3.6128738540814953`*^9, 
   3.6128845063466153`*^9, 3.6128848521151886`*^9, 3.6128855377417445`*^9, 
   3.6131491112143693`*^9, 3.613149588050356*^9, 3.615832978831128*^9, 
   3.6169358753930187`*^9, 3.616936286278103*^9, 3.6169435628826904`*^9, 
   3.616948936843033*^9, 3.6169531172550325`*^9, 3.6171023828795514`*^9, 
   3.620065317508623*^9, 3.6200685833757033`*^9, 3.6212524026492424`*^9, 
   3.621252728350871*^9, 3.62125550960695*^9}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Homogeneous Transformations", "Subsection",
 CellChangeTimes->{{3.6033009668597717`*^9, 3.6033009711461*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{
    SubscriptBox["p", 
     SubscriptBox["sj", "0"]], "[", "0", "]"}], "=", 
   RowBox[{"{", 
    RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.603300729575137*^9, 3.603300786664768*^9}, {
  3.603301006208961*^9, 3.6033010063950253`*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Table", "[", "\[IndentingNewLine]", 
  RowBox[{"(*", " ", 
   RowBox[{"Joint", " ", "Position"}], " ", "*)"}], "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{
      SubscriptBox["p", 
       SubscriptBox["sj", "i"]], "[", "0", "]"}], "=", 
     RowBox[{
      RowBox[{
       SubscriptBox["p", 
        SubscriptBox["sj", 
         RowBox[{"i", "-", "1"}]]], "[", "0", "]"}], "+", 
      RowBox[{"offsets", "[", 
       RowBox[{"[", "i", "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      SubscriptBox["g", 
       SubscriptBox["sj", "i"]], "[", "0", "]"}], "=", 
     RowBox[{"RPToHomogeneous", "[", 
      RowBox[{"I3", ",", 
       RowBox[{
        SubscriptBox["p", 
         SubscriptBox["sj", "i"]], "[", "0", "]"}]}], "]"}]}], ";", 
    "\[IndentingNewLine]", 
    RowBox[{"(*", " ", 
     RowBox[{
      RowBox[{"Center", " ", "of", " ", "Mass"}], ",", " ", 
      RowBox[{"Relative", " ", "to", " ", "Joint"}]}], " ", "*)"}], 
    "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      SubscriptBox["p", 
       SubscriptBox["sl", "i"]], "[", "0", "]"}], "=", 
     RowBox[{
      RowBox[{
       SubscriptBox["p", 
        SubscriptBox["sj", "i"]], "[", "0", "]"}], "+", 
      RowBox[{"coms", "[", 
       RowBox[{"[", "i", "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      SubscriptBox["g", 
       SubscriptBox["sl", "i"]], "[", "0", "]"}], "=", 
     RowBox[{"RPToHomogeneous", "[", 
      RowBox[{"I3", ",", 
       RowBox[{
        SubscriptBox["p", 
         SubscriptBox["sl", "i"]], "[", "0", "]"}]}], "]"}]}], ";"}], 
   "\[IndentingNewLine]", ",", "\[IndentingNewLine]", 
   RowBox[{"{", 
    RowBox[{"i", ",", "ndof"}], "}"}]}], "\[IndentingNewLine]", 
  "]"}]], "Input",
 CellChangeTimes->{{3.60330072030018*^9, 3.603300804904276*^9}, {
   3.603300997286605*^9, 3.603301061944744*^9}, {3.60330114527107*^9, 
   3.6033011674422293`*^9}, {3.603547411656267*^9, 3.603547412163007*^9}, {
   3.612834217305331*^9, 3.6128342174843416`*^9}, 3.6128342566055794`*^9, 
   3.612834366393859*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "Null", ",", "Null", ",", "Null", ",", "Null", ",", "Null", ",", "Null", 
   ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.612834604826496*^9, 3.612871586050715*^9, 
  3.6128738541104984`*^9, 3.6128845063696175`*^9, 3.612884852146192*^9, 
  3.6128855377727475`*^9, 3.6131491113043604`*^9, 3.6131495881183558`*^9, 
  3.615832978848128*^9, 3.6169358754210215`*^9, 3.6169362863231077`*^9, 
  3.6169435629536977`*^9, 3.61694893691504*^9, 3.6169531172830353`*^9, 
  3.617102382903554*^9, 3.620065317522623*^9, 3.620068583388705*^9, 
  3.621252402707246*^9, 3.621252728392874*^9, 3.6212555096589527`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{
    SubscriptBox["p", "sym_"], "[", "q_", "]"}], ":=", 
   RowBox[{"RigidPosition", "[", 
    RowBox[{
     SubscriptBox["g", "sym"], "[", "q", "]"}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.6033069700327663`*^9, 3.603306995602847*^9}, {
  3.612834321234276*^9, 3.6128343281536713`*^9}}],

Cell[CellGroupData[{

Cell["Extra Positions", "Subsubsection",
 CellChangeTimes->{{3.6033068470310287`*^9, 3.603306848445663*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{"Table", "[", "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{"{", 
      RowBox[{"sym", ",", "i", ",", "offset"}], "}"}], "=", "pos"}], ";", 
    "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"sym", "[", "0", "]"}], "=", 
     RowBox[{
      RowBox[{
       SubscriptBox["g", 
        SubscriptBox["sj", "i"]], "[", "0", "]"}], ".", 
      RowBox[{"RPToHomogeneous", "[", 
       RowBox[{"I3", ",", "offset"}], "]"}]}]}], ";", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"sym", "[", "\[Theta]", "]"}], "=", 
     RowBox[{
      RowBox[{
       RowBox[{
        RowBox[{
         SubscriptBox["g", 
          SubscriptBox["sj", "i"]], "[", "\[Theta]", "]"}], ".", 
        RowBox[{"RPToHomogeneous", "[", 
         RowBox[{"I3", ",", "offset"}], "]"}]}], "/.", "constsubs"}], "//", 
      "Simplify"}]}], ";"}], "\[IndentingNewLine]", ",", 
   "\[IndentingNewLine]", 
   RowBox[{"{", 
    RowBox[{"pos", ",", "extraPositions"}], "}"}]}], "\[IndentingNewLine]", 
  "]"}], "\[IndentingNewLine]", 
 SubscriptBox["g", "sfoot"]}], "Input",
 CellChangeTimes->{{3.603306849495283*^9, 3.603306921160907*^9}, {
   3.603307023848241*^9, 3.603307024989397*^9}, {3.603545908550332*^9, 
   3.603545909877726*^9}, {3.6060376545968943`*^9, 3.606037668134923*^9}, {
   3.6125441172944264`*^9, 3.612544126905388*^9}, 3.6128343316178694`*^9, {
   3.612872907542851*^9, 3.612872944143511*^9}, {3.6128730169387894`*^9, 
   3.6128730302981253`*^9}, {3.612873084619557*^9, 3.6128730899000845`*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "Null", ",", "Null", ",", "Null", ",", "Null", ",", "Null", ",", "Null", 
   ",", "Null", ",", "Null", ",", "Null", ",", "Null", ",", "Null", ",", 
   "Null", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{{3.612834345560667*^9, 3.612834368843999*^9}, 
   3.6128715861167216`*^9, 3.6128729399980965`*^9, 3.6128730395440497`*^9, 
   3.6128730963957343`*^9, 3.6128738599010773`*^9, 3.6128845063986206`*^9, 
   3.6128848579507723`*^9, 3.612885543617332*^9, 3.613149111347356*^9, 
   3.6131495939023557`*^9, 3.615832978939128*^9, 3.6169358755440335`*^9, 
   3.6169362922497*^9, 3.6169435689753*^9, 3.61694894281563*^9, 
   3.616953117319039*^9, 3.6171023830105643`*^9, 3.6200653175596237`*^9, 
   3.620068590809447*^9, 3.6212524031272697`*^9, 3.6212527540883436`*^9, 
   3.6212555099289684`*^9}],

Cell[BoxData[
 SubscriptBox["g", "sfoot"]], "Output",
 CellChangeTimes->{{3.612834345560667*^9, 3.612834368843999*^9}, 
   3.6128715861167216`*^9, 3.6128729399980965`*^9, 3.6128730395440497`*^9, 
   3.6128730963957343`*^9, 3.6128738599010773`*^9, 3.6128845063986206`*^9, 
   3.6128848579507723`*^9, 3.612885543617332*^9, 3.613149111347356*^9, 
   3.6131495939023557`*^9, 3.615832978939128*^9, 3.6169358755440335`*^9, 
   3.6169362922497*^9, 3.6169435689753*^9, 3.61694894281563*^9, 
   3.616953117319039*^9, 3.6171023830105643`*^9, 3.6200653175596237`*^9, 
   3.620068590809447*^9, 3.6212524031272697`*^9, 3.6212527540883436`*^9, 
   3.6212555099339685`*^9}]
}, Open  ]],

Cell[BoxData[{
 RowBox[{
  RowBox[{"qeTest", "=", 
   RowBox[{"{", 
    RowBox[{"0", ",", "0", ",", 
     RowBox[{"-", "0.1563"}], ",", 
     RowBox[{"-", "0.0213"}], ",", "0.2928", ",", 
     RowBox[{"-", "0.0403"}], ",", 
     RowBox[{"-", "0.4584"}], ",", "0.2928", ",", "0.28"}], "}"}]}], 
  ";"}], "\n", 
 RowBox[{
  RowBox[{"dqeTest", "=", 
   RowBox[{"{", 
    RowBox[{"0", ",", "0", ",", 
     RowBox[{"-", "1.0294"}], ",", 
     RowBox[{"-", "0.0194"}], ",", 
     RowBox[{"-", "0.6207"}], ",", "1.3402", ",", "3.2301", ",", 
     RowBox[{"-", "7.1747"}], ",", "2.2"}], "}"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.609629229631126*^9, 3.6096292773264713`*^9}, 
   3.610641077728888*^9, {3.6125443097126665`*^9, 3.6125443166253576`*^9}}]
}, Open  ]]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Forward Kinematics", "Section",
 CellChangeTimes->{{3.603300709355235*^9, 3.6033007114210577`*^9}}],

Cell[CellGroupData[{

Cell["Twists", "Subsection",
 CellChangeTimes->{{3.603301475352667*^9, 3.6033014757794313`*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  SubscriptBox["\[Xi]b", "1"], "=", 
  RowBox[{"PrismaticTwist", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{"1", ",", "0", ",", "0"}], "}"}]}], 
   "]"}]}], "\[IndentingNewLine]", 
 RowBox[{
  SubscriptBox["\[Xi]b", "2"], "=", 
  RowBox[{"PrismaticTwist", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{"0", ",", "0", ",", "1"}], "}"}]}], "]"}]}]}], "Input",
 CellChangeTimes->{{3.6033013142711887`*^9, 3.603301346810038*^9}, {
  3.6033042378268957`*^9, 3.6033042425885763`*^9}, {3.606958415897922*^9, 
  3.606958418296403*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], 
  "}"}]], "Output",
 CellChangeTimes->{{3.6069584163024607`*^9, 3.6069584186998034`*^9}, 
   3.606964763528268*^9, 3.606976565358034*^9, 3.607015999435569*^9, 
   3.607020760619405*^9, 3.6070280246867533`*^9, 3.607028323928072*^9, 
   3.607045599664423*^9, 3.607052429701996*^9, 3.6071249022785378`*^9, 
   3.607133209399541*^9, 3.607133636571142*^9, {3.607148805847869*^9, 
   3.6071488332282677`*^9}, 3.607149810753953*^9, 3.607150006918109*^9, 
   3.607150343629456*^9, 3.607152004587036*^9, 3.607152078716275*^9, {
   3.607152124503796*^9, 3.607152141301056*^9}, 3.607152243327221*^9, 
   3.6071523308283033`*^9, 3.607171561658247*^9, 3.607172312747902*^9, 
   3.60717365734345*^9, 3.607173936557413*^9, 3.6071878516233387`*^9, 
   3.6071980905119133`*^9, 3.60720022047678*^9, 3.607205485075223*^9, 
   3.607206979320981*^9, 3.607218572800062*^9, 3.607218751244907*^9, 
   3.607224745961994*^9, 3.6072247815159893`*^9, 3.607315414987796*^9, 
   3.6074780762046957`*^9, 3.607487816840909*^9, 3.607488052127646*^9, 
   3.607555748914124*^9, 3.607563077369334*^9, 3.6077154574150763`*^9, 
   3.6077232206435127`*^9, 3.6077540844715033`*^9, 3.607777479802717*^9, 
   3.607777607743568*^9, 3.607779026279141*^9, 3.6077793341116457`*^9, 
   3.6082235849729767`*^9, 3.608340473389995*^9, 3.60846777932792*^9, 
   3.608470120884364*^9, 3.6085585662801113`*^9, 3.608561988141632*^9, 
   3.608573352047484*^9, 3.608573995259429*^9, 3.608839519234817*^9, 
   3.609438475487829*^9, 3.60943864196852*^9, 3.609441924416479*^9, 
   3.609466485310362*^9, 3.609498925859888*^9, 3.6095027636841707`*^9, 
   3.609503539934572*^9, 3.609510633760532*^9, 3.6095156474360323`*^9, 
   3.609586113057767*^9, 3.6096078611359243`*^9, 3.609608859182341*^9, 
   3.609620850917612*^9, 3.609629289794688*^9, 3.609638025087708*^9, 
   3.609674024034781*^9, 3.609675036210935*^9, 3.609776185529354*^9, 
   3.609776280167289*^9, 3.609797236329649*^9, 3.6101928885731297`*^9, 
   3.610207334405643*^9, 3.610232382074832*^9, 3.610239880414854*^9, 
   3.6102754314227057`*^9, 3.610276863781138*^9, 3.610295954692493*^9, 
   3.6103288524780188`*^9, 3.610379497800411*^9, 3.61038009248295*^9, 
   3.610453828611763*^9, 3.61064119820951*^9, 3.610651934746396*^9, 
   3.610670395041623*^9, 3.610671071398621*^9, 3.6106755777044153`*^9, 
   3.6108485985063047`*^9, 3.6125223328539886`*^9, 3.6125428120189123`*^9, 
   3.6125432893796434`*^9, 3.6125438728169813`*^9, 3.61254422493919*^9, 
   3.612544822041894*^9, 3.612545531286812*^9, 3.612808414520239*^9, 
   3.6128328192113647`*^9, 3.612834368935004*^9, 3.612871586142724*^9, 
   3.6128738599450817`*^9, 3.6128845064216228`*^9, 3.6128848580007772`*^9, 
   3.612885543647335*^9, 3.613149111387352*^9, 3.6131495939783554`*^9, 
   3.6158329789611278`*^9, 3.61693587561004*^9, 3.6169362922977047`*^9, 
   3.6169435690483074`*^9, 3.616948942922641*^9, 3.616953117344041*^9, 
   3.6171023830355673`*^9, 3.6200653175716233`*^9, 3.62006859084245*^9, 
   3.6212524032932787`*^9, 3.6212527542683535`*^9, 3.6212555099959726`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0"}], 
  "}"}]], "Output",
 CellChangeTimes->{{3.6069584163024607`*^9, 3.6069584186998034`*^9}, 
   3.606964763528268*^9, 3.606976565358034*^9, 3.607015999435569*^9, 
   3.607020760619405*^9, 3.6070280246867533`*^9, 3.607028323928072*^9, 
   3.607045599664423*^9, 3.607052429701996*^9, 3.6071249022785378`*^9, 
   3.607133209399541*^9, 3.607133636571142*^9, {3.607148805847869*^9, 
   3.6071488332282677`*^9}, 3.607149810753953*^9, 3.607150006918109*^9, 
   3.607150343629456*^9, 3.607152004587036*^9, 3.607152078716275*^9, {
   3.607152124503796*^9, 3.607152141301056*^9}, 3.607152243327221*^9, 
   3.6071523308283033`*^9, 3.607171561658247*^9, 3.607172312747902*^9, 
   3.60717365734345*^9, 3.607173936557413*^9, 3.6071878516233387`*^9, 
   3.6071980905119133`*^9, 3.60720022047678*^9, 3.607205485075223*^9, 
   3.607206979320981*^9, 3.607218572800062*^9, 3.607218751244907*^9, 
   3.607224745961994*^9, 3.6072247815159893`*^9, 3.607315414987796*^9, 
   3.6074780762046957`*^9, 3.607487816840909*^9, 3.607488052127646*^9, 
   3.607555748914124*^9, 3.607563077369334*^9, 3.6077154574150763`*^9, 
   3.6077232206435127`*^9, 3.6077540844715033`*^9, 3.607777479802717*^9, 
   3.607777607743568*^9, 3.607779026279141*^9, 3.6077793341116457`*^9, 
   3.6082235849729767`*^9, 3.608340473389995*^9, 3.60846777932792*^9, 
   3.608470120884364*^9, 3.6085585662801113`*^9, 3.608561988141632*^9, 
   3.608573352047484*^9, 3.608573995259429*^9, 3.608839519234817*^9, 
   3.609438475487829*^9, 3.60943864196852*^9, 3.609441924416479*^9, 
   3.609466485310362*^9, 3.609498925859888*^9, 3.6095027636841707`*^9, 
   3.609503539934572*^9, 3.609510633760532*^9, 3.6095156474360323`*^9, 
   3.609586113057767*^9, 3.6096078611359243`*^9, 3.609608859182341*^9, 
   3.609620850917612*^9, 3.609629289794688*^9, 3.609638025087708*^9, 
   3.609674024034781*^9, 3.609675036210935*^9, 3.609776185529354*^9, 
   3.609776280167289*^9, 3.609797236329649*^9, 3.6101928885731297`*^9, 
   3.610207334405643*^9, 3.610232382074832*^9, 3.610239880414854*^9, 
   3.6102754314227057`*^9, 3.610276863781138*^9, 3.610295954692493*^9, 
   3.6103288524780188`*^9, 3.610379497800411*^9, 3.61038009248295*^9, 
   3.610453828611763*^9, 3.61064119820951*^9, 3.610651934746396*^9, 
   3.610670395041623*^9, 3.610671071398621*^9, 3.6106755777044153`*^9, 
   3.6108485985063047`*^9, 3.6125223328539886`*^9, 3.6125428120189123`*^9, 
   3.6125432893796434`*^9, 3.6125438728169813`*^9, 3.61254422493919*^9, 
   3.612544822041894*^9, 3.612545531286812*^9, 3.612808414520239*^9, 
   3.6128328192113647`*^9, 3.612834368935004*^9, 3.612871586142724*^9, 
   3.6128738599450817`*^9, 3.6128845064216228`*^9, 3.6128848580007772`*^9, 
   3.612885543647335*^9, 3.613149111387352*^9, 3.6131495939783554`*^9, 
   3.6158329789611278`*^9, 3.61693587561004*^9, 3.6169362922977047`*^9, 
   3.6169435690483074`*^9, 3.616948942922641*^9, 3.616953117344041*^9, 
   3.6171023830355673`*^9, 3.6200653175716233`*^9, 3.62006859084245*^9, 
   3.6212524032932787`*^9, 3.6212527542683535`*^9, 3.6212555100029726`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"qb0subs", "=", 
   RowBox[{"Flatten", "[", 
    RowBox[{"Table", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{
        RowBox[{
         RowBox[{"qb", "[", 
          RowBox[{"[", 
           RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", "0"}], ",", 
        RowBox[{
         RowBox[{"dqb", "[", 
          RowBox[{"[", 
           RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", "0"}]}], "}"}], 
      ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "nb"}], "}"}]}], "]"}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.6033013142711887`*^9, 3.603301346810038*^9}, {
  3.6033042378268957`*^9, 3.6033043081870604`*^9}, {3.603304427504136*^9, 
  3.603304427770937*^9}, {3.607173658267412*^9, 3.607173659568417*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"q0subs", "=", 
   RowBox[{"Flatten", "[", 
    RowBox[{"Table", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{
        RowBox[{
         RowBox[{"q", "[", 
          RowBox[{"[", 
           RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", "0"}], ",", 
        RowBox[{
         RowBox[{"dq", "[", 
          RowBox[{"[", 
           RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", "0"}]}], "}"}], 
      ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "ndof"}], "}"}]}], "]"}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"qe0subs", "=", 
   RowBox[{"Join", "[", 
    RowBox[{"qb0subs", ",", "q0subs"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.6033013142711887`*^9, 3.603301346810038*^9}, {
  3.6033042378268957`*^9, 3.6033043081870604`*^9}, {3.603304427504136*^9, 
  3.603304427770937*^9}, {3.603976888448729*^9, 3.60397690646749*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"testsubs", "=", 
  RowBox[{"Join", "[", 
   RowBox[{
    RowBox[{"Table", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"qtest", "[", 
        RowBox[{"[", "i", "]"}], "]"}], "\[Rule]", 
       RowBox[{"qeTest", "[", 
        RowBox[{"[", "i", "]"}], "]"}]}], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", 
        RowBox[{"ndof", "+", "nb"}]}], "}"}]}], "]"}], ",", 
    RowBox[{"Table", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"dqtest", "[", 
        RowBox[{"[", "i", "]"}], "]"}], "\[Rule]", 
       RowBox[{"dqeTest", "[", 
        RowBox[{"[", "i", "]"}], "]"}]}], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", 
        RowBox[{"ndof", "+", "nb"}]}], "}"}]}], "]"}]}], "]"}]}]], "Input",
 CellChangeTimes->{{3.609629238672883*^9, 3.6096292386735077`*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{
    RowBox[{
     SubscriptBox["r", "x"], "[", "t", "]"}], "\[Rule]", "0"}], ",", 
   RowBox[{
    RowBox[{
     SubscriptBox["r", "z"], "[", "t", "]"}], "\[Rule]", "0"}], ",", 
   RowBox[{
    RowBox[{
     SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "\[Rule]", 
    RowBox[{"-", "0.1563`"}]}], ",", 
   RowBox[{
    RowBox[{
     SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "\[Rule]", 
    RowBox[{"-", "0.0213`"}]}], ",", 
   RowBox[{
    RowBox[{
     SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "\[Rule]", "0.2928`"}], 
   ",", 
   RowBox[{
    RowBox[{
     SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "\[Rule]", 
    RowBox[{"-", "0.0403`"}]}], ",", 
   RowBox[{
    RowBox[{
     SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "\[Rule]", 
    RowBox[{"-", "0.4584`"}]}], ",", 
   RowBox[{
    RowBox[{
     SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "\[Rule]", "0.2928`"}], 
   ",", 
   RowBox[{
    RowBox[{
     SubscriptBox["\[Theta]", "7"], "[", "t", "]"}], "\[Rule]", "0.28`"}], 
   ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["r", "x"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", "0"}], ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["r", "z"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", "0"}], ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["\[Theta]", "1"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", 
    RowBox[{"-", "1.0294`"}]}], ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["\[Theta]", "2"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", 
    RowBox[{"-", "0.0194`"}]}], ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["\[Theta]", "3"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", 
    RowBox[{"-", "0.6207`"}]}], ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["\[Theta]", "4"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", "1.3402`"}], ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["\[Theta]", "5"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", "3.2301`"}], ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["\[Theta]", "6"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", 
    RowBox[{"-", "7.1747`"}]}], ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox[
      SubscriptBox["\[Theta]", "7"], "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}], "\[Rule]", "2.2`"}]}], 
  "}"}]], "Output",
 CellChangeTimes->CompressedData["
1:eJwVymkow2EAx/ERbRElRVhDLKV/yTFCjkdICSWJKLckc6dIKBH6lyFajoQc
oQiveMNYjkRW5HiBYdYzV1v454jf8+Lb583Xu7AqvcRKJBIpUPhfVIrunhLp
nbzvDKpkYrkRNt3xU8xm6zCx+wMlH7y9M/N7uTfVF4Y0uLU+wMQlHf8EK4+1
uwK0mJ1qfuCaYDl0MFBilyFqc4R1+7k6V9isGtD7wT1jzFgsnIwbfGSmBaiN
xVDNH5Zswv6L8ykt+2xLZ4+gbO3tm8kpwwJOYFDy6bz8kRKXwFFTJqUk0rxi
yodJl5xfAZTaeVQzFVLPUWYopzEws3zKYwqhuvZkRA8bh8o6X+D1p2fSK1SN
J9RbmSj5vG1RWUPfnNRtMZTJySvTIHmPl8CzxeePLhgaQYK7oVqZVzv7Romy
vV7YMlPCT/dwGqhR+Kxr4Xz0TfYe5ISFogO4I9EnOFsoOZpctVkXKCmduBrb
gB3XFTO/X5TM7afpmMNeO/5/8B9aIPeo
  "]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"twists", "=", 
  RowBox[{"{", "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"Twist", " ", "Type"}], ",", " ", "Axis"}], "}"}], " ", "*)"}], 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"RevoluteTwist", ",", 
      RowBox[{"{", 
       RowBox[{"0", ",", 
        RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"(*", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"PrismaticTwist", ",", 
        RowBox[{"{", 
         RowBox[{"0", ",", "0", ",", "1"}], "}"}]}], "}"}], ","}], "*)"}], 
    "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"RevoluteTwist", ",", 
      RowBox[{"{", 
       RowBox[{"0", ",", 
        RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"RevoluteTwist", ",", 
      RowBox[{"{", 
       RowBox[{"0", ",", 
        RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"RevoluteTwist", ",", 
      RowBox[{"{", 
       RowBox[{"0", ",", 
        RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"RevoluteTwist", ",", 
      RowBox[{"{", 
       RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"RevoluteTwist", ",", 
      RowBox[{"{", 
       RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"RevoluteTwist", ",", 
      RowBox[{"{", 
       RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "}"}]}], 
   "\[IndentingNewLine]", 
   RowBox[{"(*", 
    RowBox[{"{", 
     RowBox[{"PrismaticTwist", ",", 
      RowBox[{"{", 
       RowBox[{"0", ",", "0", ",", "1"}], "}"}]}], "}"}], "*)"}], 
   "\[IndentingNewLine]", "}"}]}]], "Input",
 CellChangeTimes->{{3.6033013725039377`*^9, 3.603301410204899*^9}, {
   3.603301787159684*^9, 3.603301796245798*^9}, 3.606958411258369*^9, {
   3.606964346795371*^9, 3.606964384591392*^9}, 3.607148825088509*^9, 
   3.607150002564105*^9, 3.607150276181242*^9, 3.6071520710454693`*^9, 
   3.607152136937428*^9, {3.6094384908909197`*^9, 3.6094385017557364`*^9}, 
   3.6095034354507637`*^9, {3.610641101896908*^9, 3.610641107549099*^9}, {
   3.6125438143441343`*^9, 3.61254381719742*^9}, 3.612544212910987*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"RevoluteTwist", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", 
       RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"RevoluteTwist", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", 
       RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"RevoluteTwist", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", 
       RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"RevoluteTwist", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", 
       RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"RevoluteTwist", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"RevoluteTwist", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"RevoluteTwist", ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "}"}]}], "}"}]], "Output",
 CellChangeTimes->{
  3.606958411694998*^9, 3.606964766448331*^9, 3.606976565453992*^9, 
   3.607015999569624*^9, 3.6070207607078123`*^9, 3.607028024804481*^9, 
   3.6070283240749702`*^9, 3.607045599848387*^9, 3.60705242978764*^9, 
   3.607124902375211*^9, 3.607133209533395*^9, 3.6071336366598387`*^9, {
   3.607148805916376*^9, 3.6071488333134813`*^9}, 3.6071498109297123`*^9, {
   3.607150003136723*^9, 3.607150007096999*^9}, 3.607150343822571*^9, 
   3.6071520047516127`*^9, {3.607152075802952*^9, 3.607152078904565*^9}, {
   3.607152124690724*^9, 3.607152141485695*^9}, 3.6071522435199957`*^9, 
   3.607152331001583*^9, 3.607171562053143*^9, 3.607172313000341*^9, 
   3.607173663413177*^9, 3.607173936628716*^9, 3.60718785179335*^9, 
   3.6071980906938667`*^9, 3.607200220645859*^9, 3.607205485316308*^9, 
   3.607206979519766*^9, 3.60721857297298*^9, 3.6072187514221087`*^9, 
   3.60722474617212*^9, 3.6072247816605883`*^9, 3.607315415169755*^9, 
   3.607478076322092*^9, 3.607487816916761*^9, 3.6074880522003202`*^9, 
   3.607555748998989*^9, 3.607563077474519*^9, 3.6077154576046467`*^9, 
   3.607723220837233*^9, 3.607754084607771*^9, 3.60777747999513*^9, 
   3.607777607888221*^9, 3.607779026371804*^9, 3.607779334216053*^9, 
   3.608223585086933*^9, 3.608340473538796*^9, 3.60846777945043*^9, 
   3.608470120948184*^9, 3.608558566468534*^9, 3.608561988339916*^9, 
   3.608573352192531*^9, 3.608573995356325*^9, 3.608839519257784*^9, 
   3.609438502736113*^9, 3.609438644603005*^9, 3.6094419245379343`*^9, 
   3.609466485404214*^9, 3.609498926085844*^9, 3.6095027639106207`*^9, 
   3.609503540106522*^9, 3.6095106339606857`*^9, 3.609515647527196*^9, 
   3.609586113238346*^9, 3.609607861235832*^9, 3.609608859350457*^9, 
   3.609620851013198*^9, 3.609629289982194*^9, 3.609638025216402*^9, 
   3.609674024287889*^9, 3.609675036454953*^9, 3.609776185774107*^9, 
   3.609776280392272*^9, 3.609797236509787*^9, 3.610192888856539*^9, 
   3.610207334637882*^9, 3.610232382201849*^9, 3.610239880579294*^9, 
   3.6102754316858997`*^9, 3.6102768640753593`*^9, 3.610295954953128*^9, 
   3.610328852631112*^9, 3.610379498046999*^9, 3.610380092748685*^9, 
   3.610453828778273*^9, 3.610641198412228*^9, 3.610651934797318*^9, 
   3.610670395212043*^9, 3.6106710715390797`*^9, 3.61067557775307*^9, 
   3.610848598687677*^9, 3.6125223328999934`*^9, 3.612542813612071*^9, 
   3.6125432894186473`*^9, 3.612543872865986*^9, {3.6125442135350494`*^9, 
   3.612544224996196*^9}, 3.6125448220888987`*^9, 3.6125455313348165`*^9, 
   3.612808414563239*^9, 3.6128328193043704`*^9, 3.6128343690380096`*^9, 
   3.6128715862007303`*^9, 3.6128738599810853`*^9, 3.612884506470628*^9, 
   3.6128848580637836`*^9, 3.6128855436633368`*^9, 3.6131491114633446`*^9, 
   3.613149594090356*^9, 3.615832979000128*^9, 3.616935875667046*^9, 
   3.6169362923637114`*^9, 3.6169435691743193`*^9, 3.6169489430806565`*^9, 
   3.6169531173960466`*^9, 3.6171023831195755`*^9, 3.6200653176216235`*^9, 
   3.620068590871453*^9, 3.6212524034262867`*^9, 3.6212527545463696`*^9, 
   3.621255510283989*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"Table", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{"{", 
       RowBox[{"TwistType", ",", "TwistAxis"}], "}"}], "=", 
      RowBox[{"twists", "[", 
       RowBox[{"[", "i", "]"}], "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"Subscript", "[", 
       RowBox[{"\[Xi]", ",", " ", "i"}], "]"}], "=", 
      RowBox[{"TwistType", "[", 
       RowBox[{
        RowBox[{
         SubscriptBox["p", 
          SubscriptBox["sj", "i"]], "[", "0", "]"}], ",", "TwistAxis"}], 
       "]"}]}], ";"}], "\[IndentingNewLine]", ",", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"i", ",", "ndof"}], "}"}]}], "\[IndentingNewLine]", "]"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.603301349767263*^9, 3.60330136082447*^9}, {
  3.603301412136948*^9, 3.603301455369587*^9}, {3.6128729818692827`*^9, 
  3.6128729818732834`*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ForwardKinematics", "[", 
  RowBox[{"RevoluteTwist", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{"0", ",", "0", ",", "1"}], "}"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.606001184373867*^9, 3.606001226488749*^9}}],

Cell[BoxData[
 RowBox[{"ForwardKinematics", "[", 
  RowBox[{"{", 
   RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1"}], "}"}], 
  "]"}]], "Output",
 CellChangeTimes->{
  3.606037406314966*^9, 3.606063286186824*^9, 3.606945830944394*^9, 
   3.606951861417178*^9, 3.606964784927821*^9, 3.6069765654854097`*^9, 
   3.6070159995940447`*^9, 3.6070207607326517`*^9, 3.607028024826008*^9, 
   3.607028324098732*^9, 3.607045599950212*^9, 3.607052429819511*^9, 
   3.6071249023968477`*^9, 3.607133209565629*^9, 3.607133636682123*^9, {
   3.607148805942917*^9, 3.6071488333552017`*^9}, 3.607149810954584*^9, 
   3.607150007120244*^9, 3.607150343847171*^9, 3.607152004775487*^9, 
   3.607152078923358*^9, {3.6071521247181787`*^9, 3.607152141506262*^9}, 
   3.607152243539666*^9, 3.607152331026335*^9, 3.607171562287511*^9, 
   3.607172313102215*^9, 3.6071736680508003`*^9, 3.607173936691284*^9, 
   3.607187851842558*^9, 3.6071980907524242`*^9, 3.607200220758362*^9, 
   3.607205485378727*^9, 3.607206979562608*^9, 3.607218573014522*^9, 
   3.60721875145189*^9, 3.607224746225616*^9, 3.607224781715745*^9, 
   3.6073154152240267`*^9, 3.607478076346019*^9, 3.607487816944984*^9, 
   3.607488052219269*^9, 3.607555749023282*^9, 3.607563077496273*^9, 
   3.607715457645967*^9, 3.607723220885644*^9, 3.607754084648327*^9, 
   3.607777480037835*^9, 3.60777760792087*^9, 3.607779026409634*^9, 
   3.607779334248238*^9, 3.608223585109514*^9, 3.608340473559228*^9, 
   3.608467779490458*^9, 3.608470120976907*^9, 3.608558566533424*^9, 
   3.6085619883974333`*^9, 3.608573352227932*^9, 3.6085739953851757`*^9, 
   3.608839519279147*^9, 3.6094385118435993`*^9, 3.60943864742282*^9, 
   3.609441924558178*^9, 3.609466485437563*^9, 3.609498926142603*^9, 
   3.609502763977228*^9, 3.609503540166628*^9, 3.609510634021886*^9, 
   3.609515647548044*^9, 3.609586113294756*^9, 3.609607861266433*^9, 
   3.609608859371292*^9, 3.609620851039706*^9, 3.609629290010386*^9, 
   3.609638025239583*^9, 3.609674024353282*^9, 3.609675036500823*^9, 
   3.609776185812489*^9, 3.609776280428424*^9, 3.609797236532044*^9, 
   3.610192888911927*^9, 3.610207334686378*^9, 3.610232382223968*^9, 
   3.610239880603243*^9, 3.610275431742259*^9, 3.610276864127267*^9, 
   3.610295954999995*^9, 3.610328852666095*^9, 3.6103794980802593`*^9, 
   3.610380092819406*^9, 3.6104538288035*^9, 3.6106411984336653`*^9, 
   3.6106519348197536`*^9, 3.610670395236477*^9, 3.610671071559153*^9, 
   3.610675577775391*^9, 3.610848598714201*^9, 3.6125223329209957`*^9, 
   3.6125428136340733`*^9, 3.612543289438649*^9, 3.612543872887988*^9, 
   3.612544225023198*^9, 3.612544822112901*^9, 3.6125455313568187`*^9, 
   3.612808414584239*^9, 3.61283281964639*^9, 3.612834369087013*^9, 
   3.612871586341744*^9, 3.6128738599990873`*^9, 3.61288450649363*^9, 
   3.6128848580937867`*^9, 3.6128855436703377`*^9, 3.6131491115003405`*^9, 
   3.6131495941463556`*^9, 3.6158329791291275`*^9, 3.6169358757720566`*^9, 
   3.6169362923967147`*^9, 3.616943569249327*^9, 3.6169489431586647`*^9, 
   3.616953117423049*^9, 3.6171023831845818`*^9, 3.6200653176616235`*^9, 
   3.6200685908844543`*^9, 3.6212524036753006`*^9, 3.6212527547003784`*^9, 
   3.6212555105010014`*^9}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Chains", "Subsection",
 CellChangeTimes->{{3.603301521820757*^9, 3.603301522240456*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"baseChains", "=", 
   RowBox[{"Table", "[", 
    RowBox[{
     RowBox[{"Table", "[", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         SubscriptBox["\[Xi]b", "j"], ",", 
         RowBox[{"qb", "[", 
          RowBox[{"[", 
           RowBox[{"j", ",", "1"}], "]"}], "]"}]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"j", ",", "i"}], "}"}]}], "]"}], ",", 
     RowBox[{"{", 
      RowBox[{"i", ",", "nb"}], "}"}]}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.603302360920218*^9, 3.603302382658916*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"chains", "=", 
   RowBox[{"Table", "[", 
    RowBox[{
     RowBox[{"Table", "[", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         SubscriptBox["\[Xi]", "j"], ",", 
         RowBox[{"q", "[", 
          RowBox[{"[", 
           RowBox[{"j", ",", "1"}], "]"}], "]"}]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"j", ",", "i"}], "}"}]}], "]"}], ",", 
     RowBox[{"{", 
      RowBox[{"i", ",", "ndof"}], "}"}]}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.6033015270113363`*^9, 3.6033015945930653`*^9}, {
  3.603302061783819*^9, 3.603302073460924*^9}, {3.603302210444395*^9, 
  3.603302210512271*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Positions", "Subsection",
 CellChangeTimes->{{3.6033017456803913`*^9, 3.603301748528319*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"Table", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{
       SubscriptBox["g", 
        SubscriptBox["sb", "i"]], "[", "\[Theta]", "]"}], "=", 
      RowBox[{
       RowBox[{"ForwardKinematics", "[", 
        RowBox[{
         RowBox[{"Sequence", "@@", 
          RowBox[{"baseChains", "[", 
           RowBox[{"[", "i", "]"}], "]"}]}], ",", "I4"}], "]"}], "/.", 
       "constsubs"}]}], ";"}], "\[IndentingNewLine]", ",", 
    "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"i", ",", "nb"}], "}"}]}], "\[IndentingNewLine]", "]"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.603302403118726*^9, 3.603302437739696*^9}, {
  3.603304898690936*^9, 3.603304902945602*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"Table", "[", "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{"Joint", " ", "Position"}], " ", "*)"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{
       SubscriptBox["g", 
        SubscriptBox["sj", "i"]], "[", "\[Theta]", "]"}], "=", 
      RowBox[{
       RowBox[{"ForwardKinematics", "[", 
        RowBox[{
         RowBox[{"Sequence", "@@", 
          RowBox[{"baseChains", "[", 
           RowBox[{"[", 
            RowBox[{"-", "1"}], "]"}], "]"}]}], ",", 
         RowBox[{"Sequence", "@@", 
          RowBox[{"chains", "[", 
           RowBox[{"[", "i", "]"}], "]"}]}], ",", 
         RowBox[{
          SubscriptBox["g", 
           SubscriptBox["sj", "i"]], "[", "0", "]"}]}], "]"}], "/.", 
       "constsubs"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{
       SubscriptBox["p", 
        SubscriptBox["sj", "i"]], "[", "\[Theta]", "]"}], "=", 
      RowBox[{
       RowBox[{"RigidPosition", "[", 
        RowBox[{
         SubscriptBox["g", 
          SubscriptBox["sj", "i"]], "[", "\[Theta]", "]"}], "]"}], "/.", 
       "constsubs"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"(*", " ", 
      RowBox[{"Center", " ", "of", " ", "Mass", " ", "Position"}], " ", 
      "*)"}], "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{
       SubscriptBox["g", 
        SubscriptBox["sl", "i"]], "[", "\[Theta]", "]"}], "=", 
      RowBox[{
       RowBox[{"ForwardKinematics", "[", 
        RowBox[{
         RowBox[{"Sequence", "@@", 
          RowBox[{"baseChains", "[", 
           RowBox[{"[", 
            RowBox[{"-", "1"}], "]"}], "]"}]}], ",", 
         RowBox[{"Sequence", "@@", 
          RowBox[{"chains", "[", 
           RowBox[{"[", "i", "]"}], "]"}]}], ",", 
         RowBox[{
          SubscriptBox["g", 
           SubscriptBox["sl", "i"]], "[", "0", "]"}]}], "]"}], "/.", 
       "constsubs"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{
       SubscriptBox["p", 
        SubscriptBox["sl", "i"]], "[", "\[Theta]", "]"}], "=", 
      RowBox[{"RigidPosition", "[", 
       RowBox[{
        SubscriptBox["g", 
         SubscriptBox["sl", "i"]], "[", "\[Theta]", "]"}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"(*", " ", 
      RowBox[{"Body", " ", "Jacobian", " ", 
       RowBox[{"(", 
        RowBox[{
        "with", " ", "padding", " ", "to", " ", "maintain", " ", "shape"}], 
        " "}]}], "*)"}], "\[IndentingNewLine]", 
     RowBox[{"Jpad", "=", 
      RowBox[{"ConstantArray", "[", 
       RowBox[{"0", ",", 
        RowBox[{"{", 
         RowBox[{"6", ",", 
          RowBox[{"ndof", "-", "i"}]}], "}"}]}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{
      SubscriptBox["Je", 
       SubscriptBox["sl", "i"]], "=", 
      RowBox[{
       RowBox[{"Join", "[", 
        RowBox[{
         RowBox[{"BodyJacobian", "[", 
          RowBox[{
           RowBox[{"Sequence", "@@", 
            RowBox[{"baseChains", "[", 
             RowBox[{"[", 
              RowBox[{"-", "1"}], "]"}], "]"}]}], ",", 
           RowBox[{"Sequence", "@@", 
            RowBox[{"chains", "[", 
             RowBox[{"[", "i", "]"}], "]"}]}], ",", 
           RowBox[{
            SubscriptBox["g", 
             SubscriptBox["sl", "i"]], "[", "0", "]"}]}], "]"}], ",", "Jpad", 
         ",", "2"}], "]"}], "/.", "constsubs"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      SubscriptBox["Je", 
       SubscriptBox["sj", "i"]], "=", 
      RowBox[{
       RowBox[{"Join", "[", 
        RowBox[{
         RowBox[{"BodyJacobian", "[", 
          RowBox[{
           RowBox[{"Sequence", "@@", 
            RowBox[{"baseChains", "[", 
             RowBox[{"[", 
              RowBox[{"-", "1"}], "]"}], "]"}]}], ",", 
           RowBox[{"Sequence", "@@", 
            RowBox[{"chains", "[", 
             RowBox[{"[", "i", "]"}], "]"}]}], ",", 
           RowBox[{
            SubscriptBox["g", 
             SubscriptBox["sj", "i"]], "[", "0", "]"}]}], "]"}], ",", "Jpad", 
         ",", "2"}], "]"}], "/.", "constsubs"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      SubscriptBox["Je0", 
       SubscriptBox["sj", "i"]], "=", 
      RowBox[{
       RowBox[{
        RowBox[{"D", "[", 
         RowBox[{
          RowBox[{
           SubscriptBox["p", 
            SubscriptBox["sj", "i"]], "[", "\[Theta]", "]"}], ",", 
          RowBox[{"{", 
           RowBox[{
            RowBox[{"Flatten", "[", "qe", "]"}], ",", "1"}], "}"}]}], "]"}], 
        "[", 
        RowBox[{"[", 
         RowBox[{"{", 
          RowBox[{"1", ",", "3"}], "}"}], "]"}], "]"}], "/.", "constsubs"}]}],
      ";", "\[IndentingNewLine]", 
     RowBox[{
      SubscriptBox["dJe0", 
       SubscriptBox["sj", "i"]], "=", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         SubscriptBox["Je0", 
          SubscriptBox["sj", "i"]], ",", "t"}], "]"}], "/.", "constsubs"}]}], 
     ";"}], "\[IndentingNewLine]", ",", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"i", ",", "ndof"}], "}"}]}], "\[IndentingNewLine]", "]"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.6033017685934973`*^9, 3.603301769857152*^9}, {
  3.603301807819026*^9, 3.603301874881897*^9}, {3.603301911281047*^9, 
  3.603301951236485*^9}, {3.6033026098217287`*^9, 3.6033026297977467`*^9}, {
  3.6033033243425694`*^9, 3.6033033311389914`*^9}, {3.603303419048459*^9, 
  3.603303420104129*^9}, {3.6033036991969433`*^9, 3.603303780715096*^9}, {
  3.603304560331073*^9, 3.60330459729106*^9}, {3.6033046336812973`*^9, 
  3.603304638922114*^9}, {3.6033049069146338`*^9, 3.6033049164486217`*^9}, {
  3.6035464517825212`*^9, 3.6035464547201643`*^9}, {3.603983328364017*^9, 
  3.603983335467577*^9}, {3.604173379612432*^9, 3.604173430187978*^9}, {
  3.604173928529248*^9, 3.604173931258987*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Guard", "Subsection",
 CellChangeTimes->{{3.603306758862706*^9, 3.60330675925156*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   SubscriptBox["h", "nsheel"], "=", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{
       SubscriptBox["p", "nsheel"], "[", "\[Theta]", "]"}], 
      "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], "/.", 
     "constsubs"}], "//", "Simplify"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["h", "nstoe"], "=", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{
       SubscriptBox["p", "nstoe"], "[", "\[Theta]", "]"}], 
      "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], "/.", 
     "constsubs"}], "//", "Simplify"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.603306761735589*^9, 3.603306770576756*^9}, {
   3.60330695903859*^9, 3.603306960408527*^9}, {3.603307052945901*^9, 
   3.603307062864053*^9}, {3.6033074053655977`*^9, 3.603307413183073*^9}, {
   3.603545205392706*^9, 3.603545230204425*^9}, {3.60354581565956*^9, 
   3.603545816539369*^9}, {3.6035458639104853`*^9, 3.603545870839222*^9}, 
   3.603545926981515*^9, {3.60694654721708*^9, 3.606946548648611*^9}, {
   3.606950960527787*^9, 3.606950961533924*^9}, {3.606952213824526*^9, 
   3.606952238050974*^9}, {3.606966299757481*^9, 3.606966299900704*^9}, {
   3.60943852984796*^9, 3.609438532703946*^9}, {3.609438565762677*^9, 
   3.609438568511339*^9}, {3.609775663677678*^9, 3.609775664374243*^9}, {
   3.6101920616027403`*^9, 3.610192119486384*^9}, 3.610192149756414*^9, {
   3.612544628052497*^9, 3.612544633347027*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   SubscriptBox["dh", "nsheel"], "=", 
   RowBox[{"D", "[", 
    RowBox[{
     SubscriptBox["h", "nsheel"], ",", "t"}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["dh", "nstoe"], "=", 
   RowBox[{"D", "[", 
    RowBox[{
     SubscriptBox["h", "nstoe"], ",", "t"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.603307065148506*^9, 3.603307067566655*^9}, {
  3.610192125638113*^9, 3.610192147388895*^9}}],

Cell[CellGroupData[{

Cell["\<\
Random Test for body velocities (classical body velocity = spatial body \
velocity = R\[Transpose].dp)\
\>", "Subsubsection",
 CellChangeTimes->{{3.60606309715631*^9, 3.6060631221654787`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   SubscriptBox["vbe", "nsf"], "=", 
   RowBox[{
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          RowBox[{"RigidOrientation", "[", 
           RowBox[{
            SubscriptBox["g", "nst"], "[", "\[Theta]", "]"}], "]"}], 
          "\[Transpose]"}], ".", 
         RowBox[{"D", "[", 
          RowBox[{
           RowBox[{"RigidPosition", "[", 
            RowBox[{
             SubscriptBox["g", "nst"], "[", "\[Theta]", "]"}], "]"}], ",", 
           "t"}], "]"}]}], ")"}], "[", 
       RowBox[{"[", 
        RowBox[{"{", 
         RowBox[{"1", ",", "3"}], "}"}], "]"}], "]"}], "}"}], 
     "\[Transpose]"}], "//", "Simplify"}]}], "*)"}]], "Input",
 CellChangeTimes->{{3.606062825241538*^9, 3.6060629035609407`*^9}, {
  3.607016055318651*^9, 3.607016065875457*^9}, {3.6094387633076878`*^9, 
  3.609438766176134*^9}, {3.609503512212853*^9, 3.609503516451343*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    SubscriptBox["Jbe", "nsf"], "=", 
    RowBox[{
     RowBox[{
      RowBox[{
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          RowBox[{"RigidOrientation", "[", 
           RowBox[{
            SubscriptBox["g", "nst"], "[", "\[Theta]", "]"}], "]"}], 
          "\[Transpose]"}], ".", 
         RowBox[{"D", "[", 
          RowBox[{
           RowBox[{"RigidPosition", "[", 
            RowBox[{
             SubscriptBox["g", "nst"], "[", "\[Theta]", "]"}], "]"}], ",", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"Flatten", "[", "qe", "]"}], ",", "1"}], "}"}]}], 
          "]"}]}], ")"}], "[", 
       RowBox[{"[", 
        RowBox[{"{", 
         RowBox[{"1", ",", "3"}], "}"}], "]"}], "]"}], "/.", "constsubs"}], "//",
      "Simplify"}]}], ";", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{
     SubscriptBox["vbe", "nsf"], "-", 
     RowBox[{
      SubscriptBox["Jbe", "nsf"], ".", "dqe"}]}], "//", "Simplify"}]}], 
  "*)"}]], "Input",
 CellChangeTimes->{{3.606037350406602*^9, 3.606037490140438*^9}, {
   3.606062614402985*^9, 3.606062773216845*^9}, {3.606062837678049*^9, 
   3.6060628382650642`*^9}, 3.606062943474609*^9, {3.606063076800933*^9, 
   3.606063088649683*^9}, {3.606966424379427*^9, 3.606966454817876*^9}, {
   3.607016071554524*^9, 3.607016083432886*^9}, {3.6094387730305853`*^9, 
   3.609438776192833*^9}, {3.609503519437829*^9, 3.609503522239519*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    SubscriptBox["dJbe", "nsa"], "=", 
    RowBox[{
     RowBox[{
      RowBox[{"D", "[", 
       RowBox[{
        SubscriptBox["Jbe", "nsa"], ",", "t"}], "]"}], "/.", "constsubs"}], "//",
      "Simplify"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.606037350406602*^9, 3.606037490140438*^9}, {
  3.606062614402985*^9, 3.606062736707015*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"i", "=", "11"}], ";", "\[IndentingNewLine]", 
   RowBox[{"Jpad", "=", 
    RowBox[{"ConstantArray", "[", 
     RowBox[{"0", ",", 
      RowBox[{"{", 
       RowBox[{"6", ",", 
        RowBox[{"ndof", "-", "i"}]}], "}"}]}], "]"}]}], ";", "\n", 
   RowBox[{
    SubscriptBox["JbeTest", "nsf"], "=", 
    RowBox[{
     RowBox[{
      RowBox[{"Join", "[", 
       RowBox[{
        RowBox[{"BodyJacobian", "[", 
         RowBox[{
          RowBox[{"Sequence", "@@", 
           RowBox[{"baseChains", "[", 
            RowBox[{"[", 
             RowBox[{"-", "1"}], "]"}], "]"}]}], ",", 
          RowBox[{"Sequence", "@@", 
           RowBox[{"chains", "[", 
            RowBox[{"[", "i", "]"}], "]"}]}], ",", 
          RowBox[{
           SubscriptBox["g", "nst"], "[", "0", "]"}]}], "]"}], ",", "Jpad", 
        ",", "2"}], "]"}], "[", 
      RowBox[{"[", 
       RowBox[{"{", 
        RowBox[{"1", ",", "3"}], "}"}], "]"}], "]"}], "/.", "constsubs"}]}], 
   ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.606037597487763*^9, 3.606037641623526*^9}, {
   3.606037684814004*^9, 3.606037750941908*^9}, {3.606062749425928*^9, 
   3.606062759178087*^9}, {3.606062928636619*^9, 3.6060629298746357`*^9}, 
   3.606952273609627*^9, {3.606966366159191*^9, 3.606966407931746*^9}, {
   3.6069664709175673`*^9, 3.6069664779063683`*^9}, {3.6070160202689037`*^9, 
   3.60701604761028*^9}, {3.607016104332708*^9, 3.607016119554413*^9}, {
   3.6070161538279467`*^9, 3.607016159169002*^9}, {3.609438698121605*^9, 
   3.609438698384659*^9}, {3.609438730850293*^9, 3.609438746895944*^9}, {
   3.6094387840682993`*^9, 3.6094387841660633`*^9}, {3.609503525934461*^9, 
   3.6095035289525967`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    SubscriptBox["JbeTest", "nsf"], "-", 
    SubscriptBox["Jbe", "nsf"]}], "//", "Simplify"}], "*)"}]], "Input",
 CellChangeTimes->{{3.606037597487763*^9, 3.606037641623526*^9}, {
  3.606037684814004*^9, 3.606037753356237*^9}, {3.607016108090603*^9, 
  3.607016109938306*^9}, {3.6095035329439707`*^9, 3.609503535264142*^9}}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Animation  ", "Subsection",
 CellChangeTimes->{{3.603307233355711*^9, 3.603307234027505*^9}, {
   3.612839210203909*^9, 3.612839213912121*^9}, 3.612873231984292*^9}],

Cell[BoxData[
 RowBox[{
  RowBox[{"plotOrder", "=", 
   RowBox[{"{", 
    RowBox[{
    "sfoot", ",", "stoe", ",", "sheel", ",", "sfoot", ",", "sknee", ",", 
     "ship", ",", "Torso", ",", "nship", ",", "nsknee", ",", "nsfoot", ",", 
     "nsheel", ",", "nstoe", ",", "nsfoot"}], "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.605742726749032*^9, 3.605742732181994*^9}, {
  3.606952202824746*^9, 3.606952206530143*^9}, {3.606966490454277*^9, 
  3.6069664933741198`*^9}, {3.609438814960677*^9, 3.609438835295601*^9}, {
  3.609675044216366*^9, 3.609675054597413*^9}, {3.60967510253493*^9, 
  3.609675103259776*^9}, {3.6096752263785686`*^9, 3.609675229294465*^9}, {
  3.609775677948948*^9, 3.609775714004632*^9}, {3.609775757835578*^9, 
  3.609775791457671*^9}, {3.610192249337161*^9, 3.6101922824838467`*^9}, {
  3.6106411331130733`*^9, 3.6106411725126667`*^9}, {3.610672386207944*^9, 
  3.610672390877433*^9}, {3.61287141878599*^9, 3.6128714299211035`*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"jpos", "=", 
    RowBox[{
     RowBox[{
      RowBox[{"Table", "[", 
       RowBox[{
        RowBox[{
         RowBox[{
          SubscriptBox["p", "sym"], "[", "\[Theta]", "]"}], "[", 
         RowBox[{"[", 
          RowBox[{"{", 
           RowBox[{"1", ",", "3"}], "}"}], "]"}], "]"}], ",", 
        RowBox[{"{", 
         RowBox[{"sym", ",", "plotOrder"}], "}"}]}], "]"}], "//", 
      "Simplify"}], "//", "Transpose"}]}], ";"}], "\[IndentingNewLine]", 
  RowBox[{"(*", 
   RowBox[{
    RowBox[{
    "plotOrder", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "-", 
    "1"}], "*)"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"(*", 
   RowBox[{
    RowBox[{"comOrder", "=", 
     RowBox[{"{", 
      RowBox[{
      "sfoot", ",", "stoe", ",", "sheel", ",", "sfoot", ",", "sknee", ",", 
       "ship", ",", "Torso", ",", "nship", ",", "nsknee", ",", "nsfoot", ",", 
       "nsheel", ",", "nstoe", ",", "nsfoot"}], "}"}]}], ";"}], 
   "*)"}]}]}], "Input",
 CellChangeTimes->{{3.603307235556366*^9, 3.603307281861281*^9}, {
   3.6033079253539*^9, 3.603307932236084*^9}, {3.6057427313180656`*^9, 
   3.6057427361878767`*^9}, {3.606951143939992*^9, 3.606951182619719*^9}, {
   3.6095041963226213`*^9, 3.609504197919651*^9}, 3.612871577230833*^9, 
   3.612871636872797*^9, {3.612872055417647*^9, 3.6128720992810326`*^9}, 
   3.6128721660447083`*^9, {3.621252181213577*^9, 3.621252187578941*^9}, {
   3.6212523565736065`*^9, 3.621252361127867*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Hip position", "Subsection",
 CellChangeTimes->{{3.6074783170965433`*^9, 3.607478328480928*^9}, {
  3.607478366872897*^9, 3.6074783697441807`*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   SubscriptBox["pe", "hip"], "=", 
   RowBox[{
    RowBox[{
     RowBox[{"RigidPosition", "[", 
      RowBox[{
       SubscriptBox["g", "ship"], "[", "\[Theta]", "]"}], "]"}], "[", 
     RowBox[{"[", 
      RowBox[{"{", 
       RowBox[{"1", ",", "3"}], "}"}], "]"}], "]"}], "//", "Simplify"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["Je", "hip"], "=", 
   RowBox[{"D", "[", 
    RowBox[{
     SubscriptBox["pe", "hip"], ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"Flatten", "[", "qe", "]"}], ",", "1"}], "}"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["dJe", "hip"], "=", 
   RowBox[{"D", "[", 
    RowBox[{
     SubscriptBox["Je", "hip"], ",", "t"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.607054255079137*^9, 3.60705426908525*^9}, {
   3.607056505538086*^9, 3.6070565263539753`*^9}, {3.607067050160337*^9, 
   3.607067052815474*^9}, 3.6070675482560053`*^9, {3.6071737229079323`*^9, 
   3.607173724380066*^9}, 3.607478152876886*^9, {3.610192355868012*^9, 
   3.610192356097496*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Center of Mass position", "Subsection",
 CellChangeTimes->{{3.6074783732556477`*^9, 3.607478380303692*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"mass", "=", 
   RowBox[{
    RowBox[{"Total", "[", "masses", "]"}], "/.", "constsubs"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"COM", "=", " ", 
   RowBox[{
    RowBox[{
     RowBox[{
      UnderoverscriptBox["\[Sum]", 
       RowBox[{"i", "=", "1"}], 
       RowBox[{"Length", "[", "masses", "]"}]], 
      RowBox[{
       RowBox[{
       "masses", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], " ", 
       RowBox[{
        RowBox[{"RigidPosition", "[", 
         RowBox[{
          SubscriptBox["g", 
           SubscriptBox["sl", "i"]], "[", "\[Theta]", "]"}], "]"}], "/", 
        "mass"}]}]}], "/.", "\[InvisibleSpace]", "constsubs"}], "//", 
    "ParallelSimplify"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["pe", "com"], "=", 
   RowBox[{"COM", "[", 
    RowBox[{"[", 
     RowBox[{"{", 
      RowBox[{"1", ",", "3"}], "}"}], "]"}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["Je", "com"], "=", 
   RowBox[{"D", "[", 
    RowBox[{
     SubscriptBox["pe", "com"], ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"Flatten", "[", "qe", "]"}], ",", "1"}], "}"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["dJe", "com"], "=", 
   RowBox[{"D", "[", 
    RowBox[{
     SubscriptBox["Je", "com"], ",", "t"}], "]"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.60748784517367*^9, 3.60748787906682*^9}, {
   3.607488008814477*^9, 3.607488011101082*^9}, {3.607488067503953*^9, 
   3.6074882061009827`*^9}, {3.60748828198601*^9, 3.607488307697859*^9}, {
   3.609778132420733*^9, 3.609778146405547*^9}, {3.6097783159568167`*^9, 
   3.609778316483108*^9}, {3.610276883373673*^9, 3.6102768868971157`*^9}, 
   3.6104542465855494`*^9, {3.6128848101939974`*^9, 3.6128848180407815`*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{
   SubscriptBox["pe", "com"], "/.", "constsubs"}], "/.", 
  "testsubs"}]], "Input",
 CellChangeTimes->{{3.609504038469426*^9, 3.6095040629495897`*^9}, {
  3.609638041939863*^9, 3.609638048707724*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"-", "0.04575702325411609`"}], ",", "0.7005670929535972`"}], 
  "}"}]], "Output",
 CellChangeTimes->{{3.609504052755301*^9, 3.6095040635515842`*^9}, 
   3.609510665409299*^9, 3.609515675189806*^9, 3.609586161406109*^9, 
   3.609607888918811*^9, 3.6096088870919237`*^9, 3.609620880541911*^9, 
   3.609629325359709*^9, {3.609638053084737*^9, 3.609638053123522*^9}, 
   3.609674078361931*^9, 3.609776305941656*^9, 3.609797267619413*^9, 
   3.610192961397449*^9, 3.610207381596467*^9, 3.610232417530114*^9, 
   3.6102399165079317`*^9, 3.610275498273835*^9, 3.610276935591365*^9, 
   3.610295998542198*^9, 3.610328886891025*^9, 3.610379541251996*^9, 
   3.6103801363168087`*^9, 3.610453862009502*^9, 3.610641205446048*^9, 
   3.610651939031163*^9, 3.61067040219665*^9, 3.6106710749443407`*^9, 
   3.6106755811712313`*^9, 3.610848605852624*^9, 3.6125223665973625`*^9, 
   3.61254329274798*^9, 3.6125438778504844`*^9, 3.6125442300226984`*^9, 
   3.612544827947485*^9, 3.612545536484331*^9, 3.612808447297239*^9, 
   3.612832842580702*^9, 3.6128343753483706`*^9, 3.612871631543264*^9, 
   3.61287386272836*^9, 3.6128845511970997`*^9, 3.6128848608580627`*^9, 
   3.6128855464206123`*^9, 3.6131491441900716`*^9, 3.6131495968363557`*^9, 
   3.615833012032128*^9, 3.616935908761355*^9, 3.6169362951629915`*^9, 
   3.6169435721556177`*^9, 3.6169489460309515`*^9, 3.616953150617368*^9, 
   3.617102416599923*^9, 3.6200653265326233`*^9, 3.6200685952048864`*^9, 
   3.621252430456833*^9, 3.6212527736384616`*^9, 3.6212555370025167`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{
   SubscriptBox["pe", "hip"], "/.", "constsubs"}], "/.", 
  "testsubs"}]], "Input",
 CellChangeTimes->{{3.6096380562299767`*^9, 3.609638066758566*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"-", "0.11755048172164284`"}], ",", "0.8776178491384453`"}], 
  "}"}]], "Output",
 CellChangeTimes->CompressedData["
1:eJxTTMoPSmVkYGAwBOJZR1OmXXvyyjGJ5az2CyBdccJeTOrpK0e5upIgFSB9
ablex1Mg/SN5y6Q3QNq60PDMDyDN93ZC6R8g3fnH8yrvs1eORf+/dPAB6RmT
Ll0XB9I+hnefqQPpvOkrFjkA6WenuN6CaI6PB96kAOmC/evSDgDpepHEJUdB
+m64rTgHpEX84/6AaP9JS/UvAuk+/j2rVZ+/csx6dfl92KtXjiZ8M9UTgfRE
mT0FIPpf6sE5ILrsbd1zEP2GS8AhCUgvlHs1/xGQTjkV0vkOSPflvvF4D6TD
2j9XMr4G+mPn9QlMQDor/9kJdiAt7DTnPYi26fN15QDSE7TZf3cAaYvUOcad
QFomsrFs+YdXjjc0Z/45+OmV40WVZzqHgPSj6rZdR4E0S4pz1AkgHZZ6Jf0U
kI4IFvYS/vzKkVXnIuuuH8DwO582bzeQzvI6v/Lvr1eO4tZbr4BobxYVvf9A
GgARIOVS
  "]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"RigidPosition", "[", 
  RowBox[{
   SubscriptBox["g", "sankle"], "[", "\[Theta]", "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.6106704099391317`*^9, 3.6106704437469893`*^9}, {
  3.6106704972450247`*^9, 3.610670528295333*^9}, {3.610672328981298*^9, 
  3.610672330313949*^9}, {3.610675586440063*^9, 3.610675587624852*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{"Cos", "[", 
      RowBox[{
       SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{"-", 
        FractionBox[
         RowBox[{"381", " ", 
          RowBox[{"(", 
           RowBox[{"1", "-", 
            RowBox[{"Cos", "[", 
             RowBox[{
              SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], 
           ")"}]}], "2500"]}], "+", 
       FractionBox[
        RowBox[{"127", " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], "2500"]}],
       ")"}]}], "-", 
    RowBox[{
     RowBox[{"Sin", "[", 
      RowBox[{
       SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       FractionBox[
        RowBox[{"127", " ", 
         RowBox[{"(", 
          RowBox[{"1", "-", 
           RowBox[{"Cos", "[", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], ")"}]}],
         "2500"], "+", 
       FractionBox[
        RowBox[{"381", " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], "2500"]}],
       ")"}]}], "+", 
    FractionBox[
     RowBox[{"127", " ", 
      RowBox[{"(", 
       RowBox[{
        RowBox[{
         RowBox[{"-", 
          RowBox[{"Cos", "[", 
           RowBox[{
            SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}]}], "-", 
        RowBox[{
         RowBox[{"Cos", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}]}], ")"}]}],
      "2500"], "-", 
    FractionBox[
     RowBox[{"381", " ", 
      RowBox[{"(", 
       RowBox[{
        RowBox[{
         RowBox[{"Cos", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
         RowBox[{"Cos", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], "-", 
        RowBox[{
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}]}], ")"}]}],
      "2500"], "+", 
    RowBox[{
     SubscriptBox["r", "x"], "[", "t", "]"}]}], ",", "0", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"Sin", "[", 
      RowBox[{
       SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{"-", 
        FractionBox[
         RowBox[{"381", " ", 
          RowBox[{"(", 
           RowBox[{"1", "-", 
            RowBox[{"Cos", "[", 
             RowBox[{
              SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], 
           ")"}]}], "2500"]}], "+", 
       FractionBox[
        RowBox[{"127", " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], "2500"]}],
       ")"}]}], "+", 
    RowBox[{
     RowBox[{"Cos", "[", 
      RowBox[{
       SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       FractionBox[
        RowBox[{"127", " ", 
         RowBox[{"(", 
          RowBox[{"1", "-", 
           RowBox[{"Cos", "[", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], ")"}]}],
         "2500"], "+", 
       FractionBox[
        RowBox[{"381", " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], "2500"]}],
       ")"}]}], "-", 
    FractionBox[
     RowBox[{"381", " ", 
      RowBox[{"(", 
       RowBox[{
        RowBox[{
         RowBox[{"Cos", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}], " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}]}], "+", 
        RowBox[{
         RowBox[{"Cos", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}]}], ")"}]}],
      "2500"], "+", 
    FractionBox[
     RowBox[{"127", " ", 
      RowBox[{"(", 
       RowBox[{
        RowBox[{
         RowBox[{"Cos", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
         RowBox[{"Cos", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}], "-", 
        RowBox[{
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
         RowBox[{"Sin", "[", 
          RowBox[{
           SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "]"}]}]}], ")"}]}],
      "2500"], "+", 
    RowBox[{
     SubscriptBox["r", "z"], "[", "t", "]"}]}]}], "}"}]], "Output",
 CellChangeTimes->{{3.610670421689391*^9, 3.6106704443159533`*^9}, 
   3.610670497660163*^9, 3.610670528722185*^9, 3.61067107495048*^9, 
   3.610672330800994*^9, {3.610675581176943*^9, 3.610675587993071*^9}, 
   3.610848605903854*^9, 3.6125223666463675`*^9, 3.612543292818987*^9, 
   3.61254387790449*^9, 3.6125442300657024`*^9, 3.6125448279854884`*^9, 
   3.612545536519335*^9, 3.6128084473352385`*^9, 3.6128328427127094`*^9, 
   3.6128343754293756`*^9, 3.612871631678277*^9, 3.6128738627553625`*^9, 
   3.612884551205101*^9, 3.6128848609070683`*^9, 3.6128855464276133`*^9, 
   3.6131491442590647`*^9, 3.613149596939356*^9, 3.6158330120541277`*^9, 
   3.61693590881336*^9, 3.6169362952219973`*^9, 3.6169435722516274`*^9, 
   3.616948946177966*^9, 3.6169531506583724`*^9, 3.617102416607924*^9, 
   3.6200653265456233`*^9, 3.6200685952198877`*^9, 3.621252430508836*^9, 
   3.621252773692465*^9, 3.621255537171527*^9}]
}, Open  ]]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Constraints", "Section",
 CellChangeTimes->{{3.6085586305371923`*^9, 3.608558639068914*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"CrossProd", "[", "\[CapitalOmega]_", "]"}], ":=", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"\[CapitalOmega]", "[", 
      RowBox[{"[", 
       RowBox[{"3", ",", "2"}], "]"}], "]"}], ",", 
     RowBox[{"\[CapitalOmega]", "[", 
      RowBox[{"[", 
       RowBox[{"1", ",", "3"}], "]"}], "]"}], ",", 
     RowBox[{"\[CapitalOmega]", "[", 
      RowBox[{"[", 
       RowBox[{"2", ",", "1"}], "]"}], "]"}]}], "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.610192855692526*^9, 3.610192855705783*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"constraints", "=", 
   RowBox[{"{", 
    RowBox[{
    "sfoot", ",", "stoe", ",", "sheel", ",", "nsheel", ",", "nstoe", ",", 
     "nsfoot"}], "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.610208405731656*^9, 3.610208417920383*^9}, {
  3.610208506539054*^9, 3.61020852342271*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Table", "[", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{
       SubscriptBox["pe", "pos"], "=", 
       RowBox[{
        RowBox[{
         RowBox[{"RigidPosition", "[", 
          RowBox[{
           SubscriptBox["g", "pos"], "[", "\[Theta]", "]"}], "]"}], 
         "\[LeftDoubleBracket]", 
         RowBox[{"{", 
          RowBox[{"1", ",", "3"}], "}"}], "\[RightDoubleBracket]"}], "//", 
        "Simplify"}]}], ";", "\[IndentingNewLine]", 
      RowBox[{
       SubscriptBox["Re", "pos"], "=", 
       RowBox[{"RigidOrientation", "[", 
        RowBox[{
         SubscriptBox["g", "pos"], "[", "\[Theta]", "]"}], "]"}]}], ";", "\n",
       "    ", 
      RowBox[{
       SubscriptBox["\[Omega]e", "pos"], "=", 
       RowBox[{
        RowBox[{"CrossProd", "[", 
         RowBox[{"Simplify", "[", 
          RowBox[{
           RowBox[{"Transpose", "[", 
            SubscriptBox["Re", "pos"], "]"}], ".", 
           RowBox[{
            SubscriptBox["\[PartialD]", "t"], 
            SubscriptBox["Re", "pos"]}]}], "]"}], "]"}], 
        "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], ";", 
      "\[IndentingNewLine]", 
      RowBox[{
       SubscriptBox["Jh", "pos"], "=", 
       RowBox[{
        RowBox[{"Join", "[", 
         RowBox[{
          RowBox[{
           SubscriptBox["\[PartialD]", 
            RowBox[{"{", 
             RowBox[{"Flatten", "[", "qe", "]"}], "}"}]], 
           SubscriptBox["pe", "pos"]}], ",", 
          RowBox[{"{", 
           RowBox[{
            SubscriptBox["\[PartialD]", 
             RowBox[{"{", 
              RowBox[{"Flatten", "[", "dqe", "]"}], "}"}]], 
            SubscriptBox["\[Omega]e", "pos"]}], "}"}], ",", "1"}], "]"}], "//",
         "Simplify"}]}], ";", "\[IndentingNewLine]", 
      RowBox[{
       SubscriptBox["dJh", "pos"], "=", 
       RowBox[{
        RowBox[{
         SubscriptBox["\[PartialD]", "t"], 
         SubscriptBox["Jh", "pos"]}], "//", "Simplify"}]}], ";"}], 
     "\[IndentingNewLine]", ",", "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"pos", ",", "constraints"}], "}"}]}], "\[IndentingNewLine]", 
    "]"}], ";"}], "\[IndentingNewLine]"}]], "Input",
 CellChangeTimes->{{3.610208315975339*^9, 3.610208360127116*^9}, {
  3.610208527439931*^9, 3.610208547873687*^9}, {3.610453862481338*^9, 
  3.610453863631646*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  SubscriptBox["r", "ns"], "=", 
  RowBox[{
   RowBox[{
    RowBox[{"Sqrt", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          SubscriptBox["pe", "com"], "\[LeftDoubleBracket]", "1", 
          "\[RightDoubleBracket]"}], "-", 
         RowBox[{
          SubscriptBox["pe", "nstoe"], "\[LeftDoubleBracket]", "1", 
          "\[RightDoubleBracket]"}]}], ")"}], "^", "2"}], "+", 
      RowBox[{
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          SubscriptBox["pe", "com"], "\[LeftDoubleBracket]", "2", 
          "\[RightDoubleBracket]"}], "-", 
         RowBox[{
          SubscriptBox["pe", "nstoe"], "\[LeftDoubleBracket]", "2", 
          "\[RightDoubleBracket]"}]}], ")"}], "^", "2"}]}], "]"}], "/.", 
    "constsubs"}], "//", "ParallelSimplify"}]}]], "Input",
 CellChangeTimes->{{3.610680659763822*^9, 3.6106806966711273`*^9}}],

Cell[BoxData[
 RowBox[{
  FractionBox["1", "70452500000"], 
  RowBox[{"(", 
   RowBox[{"\[Sqrt]", 
    RowBox[{"(", 
     RowBox[{
      SuperscriptBox[
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "126408575"}], " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}]}], "-", 
         RowBox[{"2973626008", " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}]}], "]"}]}], "-", 
         RowBox[{"6900526968", " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"6540376590", " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"21731369032", " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "5"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"25658269992", " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "6"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"3452578425", " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "7"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"768033525", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}]}], "-", 
         RowBox[{"10407458475", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "7"], "[", "t", "]"}]}], "]"}]}]}], 
        ")"}], "2"], "+", 
      SuperscriptBox[
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "768033525"}], " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}]}], "+", 
         RowBox[{"10407458475", " ", 
          RowBox[{"Cos", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "7"], "[", "t", "]"}]}], "]"}]}], "-", 
         RowBox[{"126408575", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}]}], "-", 
         RowBox[{"2973626008", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}]}], "]"}]}], "-", 
         RowBox[{"6900526968", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"6540376590", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"21731369032", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "5"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"25658269992", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "6"], "[", "t", "]"}]}], "]"}]}], "+", 
         RowBox[{"3452578425", " ", 
          RowBox[{"Sin", "[", 
           RowBox[{
            RowBox[{
             SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
            RowBox[{
             SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "-", 
            RowBox[{
             SubscriptBox["\[Theta]", "7"], "[", "t", "]"}]}], "]"}]}]}], 
        ")"}], "2"]}], ")"}]}], ")"}]}]], "Output",
 CellChangeTimes->{{3.61068067649203*^9, 3.6106807102227297`*^9}, 
   3.6125224247841806`*^9, 3.6125433047441797`*^9, 3.6125439049961987`*^9, 
   3.612544264792175*^9, 3.6125448627499647`*^9, 3.612545572324915*^9, 
   3.6128084912062387`*^9, 3.6128329419993877`*^9, 3.6128344597151966`*^9, 
   3.612871675841693*^9, 3.612873897311818*^9, 3.612884595292509*^9, 
   3.6128848956745443`*^9, 3.612885581367107*^9, 3.6131491870147886`*^9, 
   3.6131496309363556`*^9, 3.6158330559941278`*^9, 3.616936330668542*^9, 
   3.6169436076741695`*^9, 3.6169489813754854`*^9, 3.616953195697876*^9, 
   3.617102460803343*^9, 3.6200653664066234`*^9, 3.620068623687734*^9, 
   3.621252541925208*^9, 3.6212528717680745`*^9, 3.621255640448434*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{
   SubscriptBox["Jh", "rns"], "=", 
   RowBox[{
    SubscriptBox["\[PartialD]", 
     RowBox[{"{", 
      RowBox[{"Flatten", "[", "qe", "]"}], "}"}]], 
    SubscriptBox["r", "ns"]}]}], ";"}]], "Input",
 CellChangeTimes->{{3.610680680949902*^9, 3.610680704135433*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   SubscriptBox["q", "ns"], "=", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          SubscriptBox["pe", "com"], "\[LeftDoubleBracket]", "2", 
          "\[RightDoubleBracket]"}], "-", 
         RowBox[{
          SubscriptBox["pe", "nsheel"], "\[LeftDoubleBracket]", "2", 
          "\[RightDoubleBracket]"}]}], ")"}], "/", 
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          SubscriptBox["pe", "com"], "\[LeftDoubleBracket]", "1", 
          "\[RightDoubleBracket]"}], "-", 
         RowBox[{
          SubscriptBox["pe", "nsheel"], "\[LeftDoubleBracket]", "1", 
          "\[RightDoubleBracket]"}]}], ")"}]}], "-", 
      RowBox[{
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          SubscriptBox["pe", "nstoe"], "\[LeftDoubleBracket]", "1", 
          "\[RightDoubleBracket]"}], "-", 
         RowBox[{
          SubscriptBox["pe", "nsheel"], "\[LeftDoubleBracket]", "1", 
          "\[RightDoubleBracket]"}]}], ")"}], "/", 
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          SubscriptBox["pe", "nstoe"], "\[LeftDoubleBracket]", "2", 
          "\[RightDoubleBracket]"}], "-", 
         RowBox[{
          SubscriptBox["pe", "nsheel"], "\[LeftDoubleBracket]", "2", 
          "\[RightDoubleBracket]"}]}], ")"}]}]}], "/.", "constsubs"}], "//", 
    "ParallelSimplify"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["Jh", "qns"], "=", 
   RowBox[{
    SubscriptBox["\[PartialD]", 
     RowBox[{"{", 
      RowBox[{"Flatten", "[", "qe", "]"}], "}"}]], 
    SubscriptBox["q", "ns"]}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.610848608566348*^9, 3.610848611771078*^9}, {
  3.6108488710024567`*^9, 3.610848949400128*^9}, {3.610849223217619*^9, 
  3.61084923015213*^9}, {3.612833479057106*^9, 3.6128334790661063`*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Write to YAML", "Section",
 CellChangeTimes->{{3.6057417327972593`*^9, 3.605741734056199*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"Needs", "[", "\"\<SnakeYaml`\>\"", "]"}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"YamlInit", "[", "]"}], ";"}]}], "Input",
 CellChangeTimes->{{3.605974697570464*^9, 3.60597470346072*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"extraPosYaml", "=", 
   RowBox[{"Table", "[", 
    RowBox[{
     RowBox[{"{", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"\"\<dof\>\"", "\[Rule]", 
        RowBox[{
         RowBox[{"pos", "[", 
          RowBox[{"[", "2", "]"}], "]"}], "+", "2"}]}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"\"\<offset\>\"", "\[Rule]", 
        RowBox[{"pos", "[", 
         RowBox[{"[", 
          RowBox[{"3", ",", 
           RowBox[{"{", 
            RowBox[{"1", ",", "3"}], "}"}]}], "]"}], "]"}]}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"\"\<name\>\"", "\[Rule]", 
        RowBox[{"ToString", "[", 
         RowBox[{"pos", "[", 
          RowBox[{"[", 
           RowBox[{"1", ",", "2"}], "]"}], "]"}], "]"}]}]}], 
      "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"pos", ",", "extraPositions"}], "}"}]}], "\[IndentingNewLine]", 
    "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.605742462281876*^9, 3.605742488001708*^9}, {
  3.60574253121821*^9, 3.605742545022584*^9}, {3.605742660113742*^9, 
  3.6057426686643677`*^9}, {3.605974606579236*^9, 3.605974608487968*^9}, {
  3.609629887718726*^9, 3.609629887970037*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"inertiasYaml", "=", 
   RowBox[{"IT", "[", 
    RowBox[{"[", 
     RowBox[{";;", ",", "2", ",", "2"}], "]"}], "]"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.605742679650331*^9, 3.605742699207724*^9}, {
   3.6059750745825777`*^9, 3.605975127506668*^9}, 3.605975216066293*^9, {
   3.606001282791375*^9, 3.606001297129636*^9}}],

Cell[TextData[{
 StyleBox["For Rotational Joint Axes",
  FontWeight->"Bold"],
 ":\nNegate because we go from a projected coordinate frame of:\n(X, Z) with \
rotation about Y in ",
 StyleBox["Mathematica",
  FontSlant->"Italic"],
 "\nto\n(X, Y) with rotation about Z in spatial_v2. (The equivalent rotation \
is negative!!!)\n",
 Cell[BoxData[
  GraphicsBox[
   TagBox[RasterBox[CompressedData["
1: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
DKpB5rPMV1eEi8u1Y633DYDxIp9BNeB89v4c6+Gt9wuA8SOfQTWofNYzzqmt
9wmA8SSfQTWIfBa1fl7TX559sWXrfQJgPMlnUA0on70xxzis9f4AML7kM6gW
m8+i7pnPxzi7W8T6AAAgn0G1mHyWz8X4VvhjuGPrfQFgvMlnUC0yn70oX/ui
1vsBwPiTz6DqN5+V42V53Oyb3TzW0gSAuchnUPWTz7q6htPZed3ZPVvvAwDL
g3wGVZ/57LB8zRtb9w/A8iGfQbXQfFaeb5bPOSvPO1u/df8sf1Hr5M9dsdYc
226R223Sum9g4eQzqPrIZ6fm9vu37p3JELVd/pugfPKJsOoM2z05tymOaN03
sHDyGVQLyWdR++W272/dN5Ml6oCe7PUX9wtH7RKuzu9/oHW/QH/kM6jmm8+i
1gsXhyvCrVv3zeSJel3+rF4f9un5ejn/+Z383o/CRq17Bfojn0G1gHz2+tzu
8NY9M5m6+jzkL+XP4c/C5vn1/8ivXRfu3rpPoH/yGVTzyWfld164IZzTWcOJ
hqJun8dwyydnhUN7znse1bo/YHHkM6jmymdRtwrfCNeEnVr3C1GP6slkN+af
Z/q3A4w/+QyqeeSzF+b3j23dK0yJOrEno5VznZu17glYPPkMqtnyWdQO4Q/h
2501nBgReUz3XPkMlh/5DKqZ8llX13D6dJ4/2rt1nzAl6tU95zavyo8/6vwm
jD/5DKpZ8tnUdddvbt0jTIn6vz3XnL0iHNxzHO15rfsDFkc+g2q6fNbVNXJ+
HX4aNmjdIxRRtw6/yp/Xz4XV8+sn5deuDXdr3SfQP/kMqhny2Xvyawe07g+K
qNXCZ/LnsvzbYdue7/U+n/aH/k0B40s+Y1RF3aVkpbTlLNtt2rPdHot4v1vk
s6iH5ucfbD0XMCXq2J7zmH+x9mvUrnkvS/nk1Nb9Av2RzxhVUduEy/L3zDlT
53BW2qZcu39WbnNluMMi3u/P+SysG34cfhu2bj0XUETt09XnI5dPXjfLdof3
ZDjrXMAYks8YZStdA/3P03z/H3t+Dz1mke/Vm89OyI+f3noOYErUYXn8rDyL
b805tj0it31+OSfaundgYaLOk88YZVH/0t38DIEH9Xz93l1dH7p88tYBvM9U
Pjshj1GcH3YKO8Iibd767xEwPqK27ep9Ple07gVmErV6V+9RK59c2tV718o1
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
     "], {{0, 308}, {616, 0}}, {0, 255},
     ColorFunction->RGBColor],
    BoxForm`ImageTag["Byte", ColorSpace -> "RGB", Interleaving -> True],
    Selectable->False],
   BaseStyle->"ImageGraphics",
   ImageSize->{222., Automatic},
   ImageSizeRaw->{616, 308},
   PlotRange->{{0, 616}, {0, 308}}]], "Input",ImageCache->GraphicsData[
  "CompressedBitmap", "\<\
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\
\>"]]
}], "Text",
 CellChangeTimes->{{3.606001304139896*^9, 3.606001310958099*^9}, {
  3.606001352793942*^9, 3.606001397274351*^9}, {3.606001877665443*^9, 
  3.60600192949632*^9}, {3.606047609096353*^9, 3.606047611831944*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"TwistToPlanarSubspace", "[", 
    RowBox[{"RevoluteTwist", ",", "axis_"}], "]"}], ":=", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"-", 
      RowBox[{"axis", "[", 
       RowBox[{"[", "2", "]"}], "]"}]}], ",", "0", ",", "0"}], "}"}]}], 
  ";"}], "\n", 
 RowBox[{
  RowBox[{
   RowBox[{"TwistToPlanarSubspace", "[", 
    RowBox[{"PrismaticTwist", ",", "axis_"}], "]"}], ":=", 
   RowBox[{"{", 
    RowBox[{"0", ",", 
     RowBox[{"axis", "[", 
      RowBox[{"[", "1", "]"}], "]"}], ",", 
     RowBox[{"axis", "[", 
      RowBox[{"[", "3", "]"}], "]"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"jointAxesYaml", "=", 
  RowBox[{"Table", "[", 
   RowBox[{
    RowBox[{"TwistToPlanarSubspace", "[", 
     RowBox[{
      RowBox[{"twist", "[", 
       RowBox[{"[", "1", "]"}], "]"}], ",", 
      RowBox[{"twist", "[", 
       RowBox[{"[", "2", "]"}], "]"}]}], "]"}], ",", 
    RowBox[{"{", 
     RowBox[{"twist", ",", "twists"}], "}"}]}], "]"}]}]}], "Input",
 CellChangeTimes->{{3.605742679650331*^9, 3.605742699207724*^9}, {
   3.6059750745825777`*^9, 3.605975127506668*^9}, 3.605975216066293*^9, {
   3.606001282791375*^9, 3.6060013004155827`*^9}, {3.6069665851270323`*^9, 
   3.606966585580963*^9}, {3.606967307396482*^9, 3.606967311646659*^9}, 
   3.609538384011983*^9, {3.609538420973907*^9, 3.6095384415757008`*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"1", ",", "0", ",", "0"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"1", ",", "0", ",", "0"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"1", ",", "0", ",", "0"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"1", ",", "0", ",", "0"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}]}], "}"}]], "Output",
 CellChangeTimes->{
  3.6069673123269053`*^9, 3.606976598618452*^9, 3.607016173180665*^9, 
   3.607020794882485*^9, 3.607028057175396*^9, 3.607028340469512*^9, 
   3.607045650018977*^9, 3.60713132608879*^9, {3.607133684758876*^9, 
   3.607133689401515*^9}, 3.607148859234641*^9, 3.607149821373158*^9, 
   3.607152339542653*^9, 3.6071715512207193`*^9, 3.607171604439994*^9, 
   3.607172354492898*^9, 3.607173787886633*^9, 3.6071739510486317`*^9, 
   3.607187929037619*^9, 3.607200259860421*^9, 3.607205495235327*^9, 
   3.607207022712206*^9, 3.6072187589417467`*^9, 3.607224788174608*^9, 
   3.60731545953164*^9, 3.607488210983626*^9, 3.607555773336977*^9, 
   3.6075630852289543`*^9, 3.607715489991701*^9, 3.607723252936508*^9, 
   3.607754116751152*^9, 3.6077790489159737`*^9, 3.6077793800900993`*^9, 
   3.608223614612752*^9, 3.608223664686021*^9, 3.6083406904667873`*^9, 
   3.6084678102263937`*^9, 3.608470126758584*^9, 3.608559027071371*^9, 
   3.6085620203749866`*^9, 3.608573384477495*^9, 3.608574006290307*^9, 
   3.608839543528841*^9, 3.6094407096926003`*^9, 3.609442190155583*^9, 
   3.6094992309476423`*^9, 3.609502873814868*^9, 3.60950359204254*^9, 
   3.609510675712987*^9, 3.6095156836290216`*^9, {3.609538416193171*^9, 
   3.609538442763296*^9}, 3.609586177047627*^9, 3.609607904148375*^9, 
   3.609608906477298*^9, 3.609620896854549*^9, {3.609629871832552*^9, 
   3.60962989459212*^9}, 3.609638162377688*^9, 3.6097763145095377`*^9, 
   3.609778037363612*^9, 3.609797267842967*^9, 3.610232804236415*^9, 
   3.6102401047702923`*^9, 3.610275853457752*^9, 3.610297188775231*^9, 
   3.610648848940699*^9, 3.610651958355068*^9, 3.610671196449203*^9, 
   3.610672400534534*^9, 3.610675614673382*^9, 3.6125224954522467`*^9, 
   3.6125433080655117`*^9, 3.6125443373624315`*^9, 3.6125449365413427`*^9, 
   3.612545627540436*^9, 3.612808545619239*^9, 3.6128330739679365`*^9, 
   3.612834597300066*^9, 3.6128717326773763`*^9, 3.6128739510701933`*^9, 
   3.6128846497109504`*^9, 3.612884949784955*^9, 3.612885635125482*^9, 
   3.613149240705419*^9, 3.613149683932356*^9, 3.615833113361128*^9, 
   3.6169363872892027`*^9, 3.6169436617545767`*^9, 3.6169490359109387`*^9, 
   3.616953253205626*^9, 3.6171025187101336`*^9, 3.6200654154706235`*^9, 
   3.6200686727856436`*^9, 3.6212526725986824`*^9, 3.621252997492265*^9, 
   3.6212557603092895`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"TwistToJointType", "[", "RevoluteTwist", "]"}], ":=", 
   "\"\<r\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"TwistToJointType", "[", "PrismaticTwist", "]"}], ":=", 
   "\"\<p\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"jointTypes", "=", 
  RowBox[{"Table", "[", 
   RowBox[{
    RowBox[{"TwistToJointType", "[", 
     RowBox[{"twist", "[", 
      RowBox[{"[", "1", "]"}], "]"}], "]"}], ",", 
    RowBox[{"{", 
     RowBox[{"twist", ",", "twists"}], "}"}]}], "]"}]}]}], "Input",
 CellChangeTimes->{{3.609538600151503*^9, 3.609538685356629*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"r\"\>", ",", "\<\"r\"\>", ",", "\<\"r\"\>", ",", "\<\"r\"\>", 
   ",", "\<\"r\"\>", ",", "\<\"r\"\>", ",", "\<\"r\"\>"}], "}"}]], "Output",
 CellChangeTimes->{{3.609538662567294*^9, 3.609538687305971*^9}, 
   3.609586177083942*^9, 3.6096079041512814`*^9, 3.609608906496566*^9, 
   3.609620896870586*^9, {3.60962987185253*^9, 3.609629894615884*^9}, 
   3.609638162397869*^9, 3.609776314537348*^9, 3.609778037409258*^9, 
   3.6097972678600283`*^9, 3.610232804248941*^9, 3.610240104784864*^9, 
   3.610275853499607*^9, 3.61029718878316*^9, 3.610648848968027*^9, 
   3.610651958358056*^9, 3.610671196458899*^9, 3.610672400550411*^9, 
   3.6106756146764593`*^9, 3.6125224954712486`*^9, 3.612543308090514*^9, 
   3.612544337381433*^9, 3.6125449365573444`*^9, 3.6125456275444365`*^9, 
   3.6128085456372385`*^9, 3.61283307402594*^9, 3.6128345973460684`*^9, 
   3.6128717327183805`*^9, 3.6128739510831947`*^9, 3.612884649739953*^9, 
   3.612884949788955*^9, 3.6128856351284823`*^9, 3.6131492407394156`*^9, 
   3.613149683984356*^9, 3.6158331133701277`*^9, 3.6169363873202057`*^9, 
   3.6169436618035817`*^9, 3.6169490359469423`*^9, 3.616953253237629*^9, 
   3.6171025187141333`*^9, 3.6200654154736233`*^9, 3.620068672791644*^9, 
   3.6212526726226835`*^9, 3.6212529975152664`*^9, 3.621255760347292*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"BaseTwistToPlanarSubspace", "[", "twist_", "]"}], ":=", 
  RowBox[{"{", 
   RowBox[{"0", ",", 
    RowBox[{"twist", "[", 
     RowBox[{"[", "1", "]"}], "]"}], ",", 
    RowBox[{"twist", "[", 
     RowBox[{"[", "3", "]"}], "]"}]}], "}"}]}]], "Input",
 CellChangeTimes->{{3.609629822276907*^9, 3.60962982227827*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"bodiesYaml", " ", "=", " ", 
    RowBox[{"Join", "[", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"Table", "[", 
       RowBox[{
        RowBox[{"{", "\[IndentingNewLine]", 
         RowBox[{
          RowBox[{"\"\<mass\>\"", " ", "->", " ", "0"}], ",", " ", 
          "\[IndentingNewLine]", 
          RowBox[{"\"\<offset\>\"", " ", "->", " ", 
           RowBox[{"{", 
            RowBox[{"0", ",", " ", "0"}], "}"}]}], ",", " ", 
          "\[IndentingNewLine]", 
          RowBox[{"\"\<com\>\"", " ", "->", " ", 
           RowBox[{"{", 
            RowBox[{"0", ",", " ", "0"}], "}"}]}], ",", " ", 
          "\[IndentingNewLine]", 
          RowBox[{"\"\<I\>\"", " ", "->", " ", "0"}], ",", " ", 
          "\[IndentingNewLine]", 
          RowBox[{"\"\<type\>\"", " ", "->", " ", "\"\<p\>\""}], ",", 
          "\[IndentingNewLine]", " ", 
          RowBox[{"\"\<axis\>\"", " ", "->", " ", 
           RowBox[{"BaseTwistToPlanarSubspace", "[", 
            RowBox[{"Subscript", "[", 
             RowBox[{"\[Xi]b", ",", " ", "i"}], "]"}], "]"}]}], ",", " ", 
          "\[IndentingNewLine]", 
          RowBox[{"\"\<name\>\"", " ", "->", " ", 
           RowBox[{"StringJoin", "[", 
            RowBox[{"\"\<dof\>\"", ",", " ", 
             RowBox[{"ToString", "[", "i", "]"}]}], "]"}]}], ",", " ", "\n", 
          "      ", 
          RowBox[{"\"\<lambda\>\"", " ", "->", " ", 
           RowBox[{"i", " ", "-", " ", "1"}]}]}], "}"}], ",", 
        "\[IndentingNewLine]", " ", 
        RowBox[{"{", 
         RowBox[{"i", ",", " ", "nb"}], "}"}]}], "]"}], ",", " ", 
      "\[IndentingNewLine]", 
      RowBox[{"Table", "[", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{
          RowBox[{"\"\<mass\>\"", " ", "->", " ", 
           RowBox[{"masses", "[", 
            RowBox[{"[", "i", "]"}], "]"}]}], ",", " ", "\[IndentingNewLine]", 
          RowBox[{"\"\<offset\>\"", " ", "->", " ", 
           RowBox[{"offsets", "[", 
            RowBox[{"[", 
             RowBox[{"i", ",", 
              RowBox[{"{", 
               RowBox[{"1", ",", " ", "3"}], "}"}]}], "]"}], "]"}]}], ",", 
          " ", "\[IndentingNewLine]", 
          RowBox[{"\"\<com\>\"", " ", "->", " ", 
           RowBox[{"coms", "[", 
            RowBox[{"[", 
             RowBox[{"i", ",", 
              RowBox[{"{", 
               RowBox[{"1", ",", " ", "3"}], "}"}]}], "]"}], "]"}]}], ",", 
          " ", "\[IndentingNewLine]", 
          RowBox[{"\"\<I\>\"", " ", "->", " ", 
           RowBox[{"inertiasYaml", "[", 
            RowBox[{"[", "i", "]"}], "]"}]}], ",", " ", "\[IndentingNewLine]", 
          RowBox[{"\"\<type\>\"", " ", "->", " ", 
           RowBox[{"jointTypes", "[", 
            RowBox[{"[", "i", "]"}], "]"}]}], ",", " ", "\[IndentingNewLine]", 
          RowBox[{"\"\<axis\>\"", " ", "->", " ", 
           RowBox[{"jointAxesYaml", "[", 
            RowBox[{"[", "i", "]"}], "]"}]}], ",", " ", "\n", "     ", 
          RowBox[{"\"\<name\>\"", " ", "->", " ", 
           RowBox[{"StringJoin", "[", 
            RowBox[{"\"\<dof\>\"", ",", " ", 
             RowBox[{"ToString", "[", 
              RowBox[{"i", " ", "+", " ", "2"}], "]"}]}], "]"}]}], ",", " ", 
          "\[IndentingNewLine]", 
          RowBox[{"\"\<lambda\>\"", " ", "->", " ", 
           RowBox[{"i", " ", "+", " ", "1"}]}]}], "}"}], ",", " ", 
        "\[IndentingNewLine]", 
        RowBox[{"{", 
         RowBox[{"i", ",", " ", "ndof"}], "}"}]}], "]"}]}], "]"}]}], ";"}], 
  " "}]], "Input",
 CellChangeTimes->{{3.609629859258074*^9, 3.609629863621188*^9}, {
  3.6096302337466583`*^9, 3.6096302847191887`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"yamlStruct", " ", "=", 
   RowBox[{
    RowBox[{
     RowBox[{"{", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"\"\<bodies\>\"", "\[Rule]", "bodiesYaml"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"\"\<positions\>\"", "\[Rule]", "extraPosYaml"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"\"\<plot_order\>\"", "\[Rule]", 
        RowBox[{"Table", "[", 
         RowBox[{
          RowBox[{"ToString", "[", "sym", "]"}], ",", 
          RowBox[{"{", 
           RowBox[{"sym", ",", "plotOrder"}], "}"}]}], "]"}]}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"\"\<boom\>\"", "\[Rule]", 
        RowBox[{"{", "\[IndentingNewLine]", 
         RowBox[{
          RowBox[{"\"\<I\>\"", "\[Rule]", 
           SubscriptBox["\[ScriptCapitalI]", "boom"]}], ",", 
          "\[IndentingNewLine]", 
          RowBox[{"\"\<L\>\"", "\[Rule]", "Lboom"}]}], "\[IndentingNewLine]", 
         "}"}]}], ",", "\[IndentingNewLine]", 
       RowBox[{"\"\<motors\>\"", "\[Rule]", 
        RowBox[{"{", "\[IndentingNewLine]", 
         RowBox[{
          RowBox[{"\"\<smallMotors\>\"", "\[Rule]", " ", 
           RowBox[{"{", "\[IndentingNewLine]", 
            RowBox[{"\"\<I\>\"", "\[Rule]", "smallMotorInertia"}], "}"}]}], 
          ",", "\[IndentingNewLine]", 
          RowBox[{"\"\<largeMotors\>\"", "\[Rule]", " ", 
           RowBox[{"{", "\[IndentingNewLine]", 
            RowBox[{"\"\<I\>\"", "\[Rule]", "largeMotorInertia"}], "}"}]}]}], 
         "\[IndentingNewLine]", "}"}]}]}], "\[IndentingNewLine]", "}"}], "/.",
      "constsubs"}], "//", "N"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.605741790498748*^9, 3.6057418151564627`*^9}, {
  3.6057418609260607`*^9, 3.6057419518828506`*^9}, {3.605742424761039*^9, 
  3.605742442535143*^9}, {3.6057424893671618`*^9, 3.6057424939665833`*^9}, {
  3.605742685891348*^9, 3.605742708540572*^9}, {3.605742741466282*^9, 
  3.605742768426824*^9}, {3.6059745832235403`*^9, 3.6059745971929493`*^9}, {
  3.605975524562518*^9, 3.6059755624044867`*^9}, {3.605975644843521*^9, 
  3.6059756464651012`*^9}, {3.605975700463711*^9, 3.6059757014190073`*^9}, {
  3.606063218885448*^9, 3.6060632745754433`*^9}, {3.606064247255136*^9, 
  3.606064255465365*^9}, {3.609440724394767*^9, 3.6094407498131447`*^9}, {
  3.609440789590486*^9, 3.609440838325856*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"YamlWriteFile", "[", 
   RowBox[{"yamlStruct", ",", "\"\<body_struct.yaml\>\""}], "]"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.605741748609672*^9, 3.605741806126444*^9}, {
  3.605742585355708*^9, 3.6057426518324537`*^9}, {3.6060644290298567`*^9, 
  3.6060644307906427`*^9}}],

Cell[BoxData[
 RowBox[{
  StyleBox[
   RowBox[{"General", "::", "unavail"}], "MessageName"], 
  RowBox[{
  ":", " "}], "\<\"\[NoBreak]\\!\\(Export\\)\[NoBreak] is not available in \
this version of the Wolfram Language.\"\>"}]], "Message", "MSG",
 CellChangeTimes->{3.621252676874927*^9, 3.6212529989293475`*^9, 
  3.6212557633424625`*^9}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Dynamics", "Section",
 CellChangeTimes->{{3.6033036136285152`*^9, 3.603303614298974*^9}}],

Cell[CellGroupData[{

Cell["Potential Energy", "Subsection",
 CellChangeTimes->{{3.603304871322228*^9, 3.6033048735758657`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"V", "=", 
    RowBox[{"Sum", "[", 
     RowBox[{
      RowBox[{"grav", "*", 
       RowBox[{"masses", "[", 
        RowBox[{"[", "i", "]"}], "]"}], "*", 
       RowBox[{
        RowBox[{
         SubscriptBox["p", 
          SubscriptBox["sl", "i"]], "[", "\[Theta]", "]"}], "[", 
        RowBox[{"[", "3", "]"}], "]"}]}], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "ndof"}], "}"}]}], "]"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6033045248459187`*^9, 3.603304553958098*^9}, {
   3.6033046433103733`*^9, 3.6033046727719097`*^9}, {3.6033047425592947`*^9, 
   3.603304753924879*^9}, {3.6033048247319717`*^9, 3.603304825287469*^9}, {
   3.603306355223597*^9, 3.603306355532033*^9}, 3.603546475286585*^9, {
   3.6035466806195593`*^9, 3.6035466821680937`*^9}, {3.603976834651639*^9, 
   3.603976834952376*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"Ge", "=", 
    RowBox[{
     RowBox[{
      RowBox[{"Vec", "[", 
       RowBox[{"D", "[", 
        RowBox[{"V", ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"Flatten", "[", "qe", "]"}], ",", "1"}], "}"}]}], "]"}], 
       "]"}], "/.", "constsubs"}], "//", "ParallelSimplify"}]}], ";"}], 
  "*)"}]], "Input",
 CellChangeTimes->{{3.6033046764300632`*^9, 3.603304709885273*^9}, 
   3.603304770450292*^9, {3.603304801612401*^9, 3.6033048096325283`*^9}, {
   3.6033048440370817`*^9, 3.6033048554327*^9}, {3.603307610959867*^9, 
   3.603307611622863*^9}, {3.603544402170755*^9, 3.603544404735927*^9}, 
   3.6069766204262323`*^9, {3.607020806615224*^9, 3.6070208067909203`*^9}, {
   3.607152899314279*^9, 3.607152899938857*^9}, 3.6071529661613293`*^9, 
   3.6096089858824883`*^9, 3.6096090230575333`*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"G", "=", 
    RowBox[{
     RowBox[{"Ge", "[", 
      RowBox[{"[", 
       RowBox[{
        RowBox[{"-", "ndof"}], ";;", 
        RowBox[{"-", "1"}]}], "]"}], "]"}], "/.", "qb0subs"}]}], ";"}], 
  "*)"}]], "Input",
 CellChangeTimes->{{3.6033047736934834`*^9, 3.603304778523425*^9}, {
  3.603304860775237*^9, 3.603304887635394*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"G", "/.", "testsubs"}], "//", "MatrixForm"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6071313378921423`*^9, 3.6071313484076*^9}, {
  3.609442396441568*^9, 3.609442399268806*^9}, {3.609629915202352*^9, 
  3.609629917649105*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   SubscriptBox["Je", 
    SubscriptBox["sl", "9"]], "/.", "testsubs"}], "*)"}]], "Input",
 CellChangeTimes->{{3.609632154814198*^9, 3.609632156901843*^9}, {
  3.609632190702775*^9, 3.6096323032385597`*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Kinetic Energy", "Subsection",
 CellChangeTimes->{{3.603304876289256*^9, 3.603304878515443*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{"\[ScriptCapitalD]eBody", "=", 
       RowBox[{"Sum", "[", 
        RowBox[{
         RowBox[{
          RowBox[{
           SubscriptBox["Je", 
            SubscriptBox["sl", "i"]], "\[Transpose]"}], ".", 
          RowBox[{"MM", "[", 
           RowBox[{"[", "i", "]"}], "]"}], ".", 
          SubscriptBox["Je", 
           SubscriptBox["sl", "i"]]}], ",", 
         RowBox[{"{", 
          RowBox[{"i", ",", "ndof"}], "}"}]}], "]"}]}], ";"}], 
     "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"\[ScriptCapitalD]eBoom", "=", 
       RowBox[{
        RowBox[{
         SubscriptBox["Je", 
          SubscriptBox["sj", "6"]], "\[Transpose]"}], ".", "MMBoom", ".", 
        SubscriptBox["Je", 
         SubscriptBox["sj", "6"]]}]}], ";"}], "\[IndentingNewLine]", 
     "\[ScriptCapitalD]eMotor"}], "=", 
    RowBox[{"BlockDiagonalMatrix", "[", 
     RowBox[{"{", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"ConstantArray", "[", 
        RowBox[{"0", ",", 
         RowBox[{"{", 
          RowBox[{"nb", ",", "nb"}], "}"}]}], "]"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"ConstantArray", "[", 
        RowBox[{"0", ",", 
         RowBox[{"{", 
          RowBox[{"1", ",", "1"}], "}"}]}], "]"}], ",", " ", 
       RowBox[{"(*", " ", 
        RowBox[{"Underactuated", " ", "toe"}], " ", "*)"}], 
       "\[IndentingNewLine]", 
       RowBox[{"DiagonalMatrix", "[", 
        RowBox[{"Table", "[", 
         RowBox[{"smallMotorInertia", ",", 
          RowBox[{"{", 
           RowBox[{"i", ",", "1"}], "}"}]}], "]"}], "]"}], ",", 
       RowBox[{"(*", 
        RowBox[{"Actuated", " ", "foot"}], "*)"}], "\[IndentingNewLine]", 
       RowBox[{"ConstantArray", "[", 
        RowBox[{"0", ",", 
         RowBox[{"{", 
          RowBox[{"1", ",", "1"}], "}"}]}], "]"}], ",", " ", 
       RowBox[{"(*", " ", 
        RowBox[{"Underactuated", " ", "spring"}], " ", "*)"}], 
       "\[IndentingNewLine]", 
       RowBox[{"DiagonalMatrix", "[", 
        RowBox[{"Table", "[", 
         RowBox[{"smallMotorInertia", ",", 
          RowBox[{"{", 
           RowBox[{"i", ",", "1"}], "}"}]}], "]"}], "]"}], ",", 
       RowBox[{"(*", 
        RowBox[{"Actuated", " ", "ankle"}], "*)"}], "\[IndentingNewLine]", 
       RowBox[{"DiagonalMatrix", "[", 
        RowBox[{"Table", "[", 
         RowBox[{"largeMotorInertia", ",", 
          RowBox[{"{", 
           RowBox[{"i", ",", "4"}], "}"}]}], "]"}], "]"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"DiagonalMatrix", "[", 
        RowBox[{"Table", "[", 
         RowBox[{"smallMotorInertia", ",", 
          RowBox[{"{", 
           RowBox[{"i", ",", "1"}], "}"}]}], "]"}], "]"}], ",", 
       RowBox[{"(*", 
        RowBox[{"Actuated", " ", "ankle"}], "*)"}], "\[IndentingNewLine]", 
       RowBox[{"ConstantArray", "[", 
        RowBox[{"0", ",", 
         RowBox[{"{", 
          RowBox[{"1", ",", "1"}], "}"}]}], "]"}], ",", 
       RowBox[{"(*", " ", 
        RowBox[{"Underactuated", " ", "spring"}], "*)"}], 
       "\[IndentingNewLine]", 
       RowBox[{"DiagonalMatrix", "[", 
        RowBox[{"Table", "[", 
         RowBox[{"smallMotorInertia", ",", 
          RowBox[{"{", 
           RowBox[{"i", ",", "1"}], "}"}]}], "]"}], "]"}]}], 
      RowBox[{"(*", 
       RowBox[{"Actuated", " ", "foot"}], "*)"}], "\[IndentingNewLine]", 
      "}"}], "]"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.603303797785643*^9, 3.603303864068967*^9}, {
   3.603304056694865*^9, 3.603304210829121*^9}, {3.6033058494100943`*^9, 
   3.6033058520056047`*^9}, {3.603983274717156*^9, 3.603983289772581*^9}, {
   3.605999923791306*^9, 3.605999927192663*^9}, {3.6069697094838676`*^9, 
   3.6069697132283783`*^9}, {3.6069699643607693`*^9, 
   3.6069700227216263`*^9}, {3.606976622357871*^9, 3.6069766554619102`*^9}, {
   3.607020810261901*^9, 3.607020833156333*^9}, {3.607028065950264*^9, 
   3.6070280734399242`*^9}, {3.6071494212564774`*^9, 3.607149458736231*^9}, {
   3.6071523915107117`*^9, 3.607152401912447*^9}, {3.607155816178392*^9, 
   3.6071558307452908`*^9}, {3.607158710943006*^9, 3.6071587138634567`*^9}, {
   3.60857328020894*^9, 3.608573330399035*^9}, {3.6085743181954317`*^9, 
   3.6085743645871067`*^9}, {3.609440951711875*^9, 3.609441147480164*^9}, 
   3.609609087354123*^9, 3.609609185848442*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{"\[ScriptCapitalD]eBody", "/.", "constsubs"}], "/.", 
     "testsubs"}], "//", "MatrixForm"}], "//", "N"}], "*)"}]], "Input",
 CellChangeTimes->{
  3.609629944923139*^9, {3.6096303034964933`*^9, 3.609630304284027*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    RowBox[{"\[ScriptCapitalD]e", "=", 
     RowBox[{
      RowBox[{"(", 
       RowBox[{"\[ScriptCapitalD]eBody", "+", "\[ScriptCapitalD]eMotor"}], 
       ")"}], "/.", "constsubs"}]}], ";"}], "\[IndentingNewLine]", 
   RowBox[{"Dimensions", "[", "\[ScriptCapitalD]eBody", "]"}], 
   "\[IndentingNewLine]", 
   RowBox[{"Dimensions", "[", "\[ScriptCapitalD]eMotor", "]"}]}], 
  "*)"}]], "Input",
 CellChangeTimes->{{3.603303642344269*^9, 3.603303689650025*^9}, {
   3.603303790718749*^9, 3.603303795950992*^9}, 3.603304099653851*^9, {
   3.60330421846502*^9, 3.603304223545766*^9}, {3.603304348984914*^9, 
   3.603304374578157*^9}, {3.603306253931776*^9, 3.6033062571671247`*^9}, 
   3.606976625828373*^9, 3.607020814494815*^9, 3.607149701995337*^9, {
   3.607152371250924*^9, 3.607152373896349*^9}, 3.6071529072112103`*^9, 
   3.6071529589345703`*^9, {3.607153746376614*^9, 3.607153754197422*^9}, {
   3.607153889970036*^9, 3.607153919904325*^9}, {3.607154367373447*^9, 
   3.607154370606081*^9}, {3.607154709370488*^9, 3.607154729670402*^9}, {
   3.607171630620926*^9, 3.607171633861471*^9}, {3.607200793059772*^9, 
   3.607200793312283*^9}, {3.609608104115884*^9, 3.6096081456649933`*^9}, {
   3.6096090184661818`*^9, 3.609609042065936*^9}, {3.609609236509509*^9, 
   3.609609236863618*^9}, {3.609632331103697*^9, 3.6096323333488083`*^9}, {
   3.609636911267754*^9, 3.60963692177109*^9}, {3.61252369270096*^9, 
   3.612523740599749*^9}}],

Cell[BoxData[
 RowBox[{"(*", "*)"}]], "Input",
 CellChangeTimes->{{3.6125236862663164`*^9, 3.6125236885505447`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{"Dimensions", "[", "\[ScriptCapitalD]e", "]"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6096092097899513`*^9, 3.6096092290923367`*^9}, {
  3.609636900068557*^9, 3.609636901235506*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    RowBox[{"\[ScriptCapitalD]", "=", 
     RowBox[{
      RowBox[{"\[ScriptCapitalD]e", "[", 
       RowBox[{"[", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "ndof"}], ";;", 
          RowBox[{"-", "1"}]}], ",", 
         RowBox[{
          RowBox[{"-", "ndof"}], ";;", 
          RowBox[{"-", "1"}]}]}], "]"}], "]"}], "/.", "qb0subs"}]}], ";"}], 
   "\[IndentingNewLine]", "ndof"}], "*)"}]], "Input",
 CellChangeTimes->{{3.603304377277358*^9, 3.603304424865992*^9}, 
   3.60697680210319*^9, 3.607020815342001*^9, {3.607152413706242*^9, 
   3.607152414051858*^9}, {3.6071537007293386`*^9, 3.6071537049496813`*^9}, {
   3.6071539253808813`*^9, 3.60715392935371*^9}, 3.6096091982684107`*^9, 
   3.609620977233973*^9, {3.6125443999326878`*^9, 3.6125444012748213`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{"\[ScriptCapitalD]eBody", "[", 
   RowBox[{"[", 
    RowBox[{"13", ",", "13"}], "]"}], "]"}], "*)"}]], "Input",
 CellChangeTimes->{{3.607132621897408*^9, 3.607132636519957*^9}, {
   3.607132786673663*^9, 3.60713281166509*^9}, {3.607132846618174*^9, 
   3.607132866363694*^9}, {3.607153691282422*^9, 3.607153693601377*^9}, {
   3.607153950625394*^9, 3.607153953264534*^9}, 3.607154410233539*^9, {
   3.6071546320090923`*^9, 3.607154685712096*^9}, 3.607155569057692*^9, {
   3.609442403262926*^9, 3.6094424061157722`*^9}, {3.609630350283525*^9, 
   3.6096303542277822`*^9}, {3.609636956401842*^9, 3.609637012978484*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    RowBox[{"\[ScriptCapitalD]", "/.", "constsubs"}], "/.", "testsubs"}], "//",
    "MatrixForm"}], "*)"}]], "Input",
 CellChangeTimes->{
  3.607200307959824*^9, {3.6094424147084723`*^9, 3.609442417420871*^9}, {
   3.609630352365543*^9, 3.6096303549957333`*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Coriolis Matrix", "Subsection",
 CellChangeTimes->{{3.603304930087101*^9, 3.603304934381275*^9}, {
  3.607153070362776*^9, 3.607153071488662*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"\[ScriptCapitalC]eBody", "=", 
    RowBox[{"InertiaToCoriolis", "[", 
     RowBox[{
      RowBox[{"\[ScriptCapitalD]eBody", "/.", "constsubs"}], ",", 
      RowBox[{"Flatten", "[", "qe", "]"}], ",", 
      RowBox[{"Flatten", "[", "dqe", "]"}]}], "]"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6040019030275307`*^9, 3.604001912930416*^9}, {
   3.604002227471958*^9, 3.604002228390333*^9}, 3.60417378335172*^9, 
   3.606976806413559*^9, 3.6070208172461*^9, {3.607152439627432*^9, 
   3.6071524421550617`*^9}, {3.607153969396236*^9, 3.607153976096546*^9}, {
   3.607172201505952*^9, 3.607172208650156*^9}, {3.609608158391284*^9, 
   3.6096081816605053`*^9}, 3.609609047106944*^9, 3.609609292021686*^9, {
   3.609637086803822*^9, 3.609637091075729*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"\[ScriptCapitalC]eBoom", "=", 
    RowBox[{"InertiaToCoriolis", "[", 
     RowBox[{
      RowBox[{"ParallelSimplify", "[", 
       RowBox[{"\[ScriptCapitalD]eBoom", "/.", "constsubs"}], "]"}], ",", 
      RowBox[{"Flatten", "[", "qe", "]"}], ",", 
      RowBox[{"Flatten", "[", "dqe", "]"}]}], "]"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.604001916293826*^9, 3.604001933450172*^9}, 
   3.6040022327837467`*^9, 3.6041737859035263`*^9, 3.6069768072301826`*^9, 
   3.607020817990368*^9, {3.60715244481114*^9, 3.607152447282598*^9}, {
   3.607172392978271*^9, 3.607172396701665*^9}, 3.6096081830018377`*^9, 
   3.609609047730682*^9, {3.6096092942737293`*^9, 3.6096092955385933`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"\[ScriptCapitalC]e", "=", "\[ScriptCapitalC]eBody"}], ";"}], 
  "*)"}]], "Input",
 CellChangeTimes->{{3.603304952541236*^9, 3.603304952542389*^9}, {
   3.604002411496233*^9, 3.60400241992135*^9}, 3.6069768219303703`*^9, 
   3.607020818795209*^9, {3.607152456770013*^9, 3.607152464008803*^9}, {
   3.607152918584222*^9, 3.607152922767318*^9}, 3.607152962372794*^9, {
   3.607153978204084*^9, 3.6071539896661263`*^9}, {3.607158751963866*^9, 
   3.6071587549678164`*^9}, {3.60720082856281*^9, 3.607200828711741*^9}, {
   3.609637146199911*^9, 3.609637148491788*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"\[ScriptCapitalC]", "=", 
    RowBox[{
     RowBox[{"\[ScriptCapitalC]e", "[", 
      RowBox[{"[", 
       RowBox[{
        RowBox[{"3", ";;", "All"}], ",", 
        RowBox[{"3", ";;", "All"}]}], "]"}], "]"}], "/.", "qb0subs"}]}], 
   ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.603304965330083*^9, 3.6033049693063097`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    RowBox[{"\[ScriptCapitalC]e", "/.", "constsubs"}], "/.", "testsubs"}], "//",
    "MatrixForm"}], "*)"}]], "Input",
 CellChangeTimes->{
  3.607152481659293*^9, {3.609442420475576*^9, 3.6094424229373903`*^9}, {
   3.609637156547312*^9, 3.609637158546797*^9}}]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell["Generic Save Preparation", "Section",
 CellChangeTimes->{{3.604333526489732*^9, 3.6043335295253696`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"statesubs", "=", 
    RowBox[{"Flatten", "[", 
     RowBox[{"Join", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"Table", "[", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{
           RowBox[{
            RowBox[{"q", "[", 
             RowBox[{"[", 
              RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", 
            RowBox[{"x", "[", "i", "]"}]}], ",", 
           RowBox[{
            RowBox[{"dq", "[", 
             RowBox[{"[", 
              RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", 
            RowBox[{"x", "[", 
             RowBox[{"ndof", "+", "i"}], "]"}]}]}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{"i", ",", "ndof"}], "}"}]}], "]"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"Table", "[", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{
           RowBox[{
            RowBox[{"qb", "[", 
             RowBox[{"[", 
              RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", 
            RowBox[{"xb", "[", "i", "]"}]}], ",", 
           RowBox[{
            RowBox[{"dqb", "[", 
             RowBox[{"[", 
              RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", 
            RowBox[{"xb", "[", 
             RowBox[{"nb", "+", "i"}], "]"}]}]}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{"i", ",", "nb"}], "}"}]}], "]"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"{", 
        RowBox[{
         SuperscriptBox["p", "+"], "\[Rule]", 
         RowBox[{"p", "[", "1", "]"}]}], "}"}]}], "\[IndentingNewLine]", 
      "]"}], "]"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6033054732109613`*^9, 3.603305597775173*^9}, {
  3.604329197979383*^9, 3.6043292075128107`*^9}, {3.609638278070557*^9, 
  3.609638280457553*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"statesubs", "=", 
    RowBox[{"Flatten", "[", 
     RowBox[{"Join", "[", 
      RowBox[{
       RowBox[{"Table", "[", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{
           RowBox[{
            RowBox[{"qe", "[", 
             RowBox[{"[", 
              RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", 
            RowBox[{"x", "[", "i", "]"}]}], ",", 
           RowBox[{
            RowBox[{"dqe", "[", 
             RowBox[{"[", 
              RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", 
            RowBox[{"x", "[", 
             RowBox[{"nb", "+", "ndof", "+", "i"}], "]"}]}]}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{"i", ",", 
           RowBox[{"nb", "+", "ndof"}]}], "}"}]}], "]"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"{", 
        RowBox[{
         SuperscriptBox["p", "+"], "\[Rule]", 
         RowBox[{"p", "[", "1", "]"}]}], "}"}]}], "]"}], "]"}]}], ";"}], 
  "\[IndentingNewLine]"}]], "Input",
 CellChangeTimes->{{3.609638281616569*^9, 3.6096383722956057`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"generalFormatter", "[", "expr_", "]"}], ":=", 
   RowBox[{
    RowBox[{"N", "[", 
     RowBox[{"expr", "/.", "constsubs"}], "]"}], "/.", "statesubs"}]}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.604333739746395*^9, 3.604333757355805*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"SetOptions", "[", 
   RowBox[{"WriteMatlabFunction", ",", "\[IndentingNewLine]", 
    RowBox[{"Formatter", "\[Rule]", "generalFormatter"}]}], 
   "\[IndentingNewLine]", "]"}], ";"}]], "Input",
 CellChangeTimes->{{3.604333540184311*^9, 3.604333550297082*^9}, {
  3.60433373838579*^9, 3.604333763164949*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Save Kinematics and Dynamics", "Section",
 CellChangeTimes->{{3.603305351339694*^9, 3.603305356360577*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"SetDirectory", "[", 
  RowBox[{"NotebookDirectory", "[", "]"}], "]"}]], "Input"],

Cell[BoxData["\<\"C:\\\\Users\\\\Ken\\\\Desktop\\\\Amber3_FlatFeet\\\\\
dynamics_embedding\"\>"], "Output",
 CellChangeTimes->{
  3.6070334592983027`*^9, 3.607033536680358*^9, 3.60704566128508*^9, 
   3.607052718235137*^9, 3.607054370784033*^9, 3.6070562674397717`*^9, 
   3.60706755721342*^9, 3.6071525265265303`*^9, 3.607172795263218*^9, 
   3.607173796884428*^9, 3.607173961172773*^9, 3.607187970877241*^9, 
   3.607201250374886*^9, 3.607218979019212*^9, 3.607224968945198*^9, 
   3.607488339054861*^9, 3.607555781291829*^9, 3.607563095796068*^9, 
   3.607571982241465*^9, 3.6077154908691597`*^9, 3.6077232539815817`*^9, 
   3.607723461941383*^9, 3.6077541177248077`*^9, 3.607779571607831*^9, {
   3.608223939322345*^9, 3.6082239395454073`*^9}, 3.608340925875568*^9, 
   3.608468172522284*^9, 3.608470224828381*^9, 3.6085613215661917`*^9, 
   3.608562210956513*^9, 3.608574788011382*^9, 3.608839740628982*^9, 
   3.609458456663291*^9, 3.609499385485298*^9, 3.609502875269862*^9, 
   3.6095035933150454`*^9, 3.609523654658146*^9, 3.6096082515889883`*^9, 
   3.609617877023494*^9, 3.609637441254161*^9, 3.609638389036305*^9, 
   3.609674101782854*^9, 3.609776363571517*^9, 3.609776429453621*^9, 
   3.609797274644882*^9, 3.610235743217564*^9, 3.610238941689658*^9, 
   3.6102401053468103`*^9, 3.610275855085833*^9, 3.610276949494689*^9, 
   3.6102971995904093`*^9, 3.61045413834568*^9, {3.610648849723155*^9, 
   3.610648871888768*^9}, 3.6106519588800898`*^9, 3.610671210773377*^9, 
   3.610672429004114*^9, 3.610675615014676*^9, 3.612522573069008*^9, 
   3.612544394904185*^9, 3.6125449808417726`*^9, 3.6125456727269545`*^9, 
   3.612808584059239*^9, 3.6128330763140707`*^9, 3.6128345985901394`*^9, 
   3.6128717334144497`*^9, 3.612873951385225*^9, 3.612884650324012*^9, 
   3.612884950057982*^9, 3.612885635396509*^9, 3.613149241387356*^9, 
   3.6131496843503556`*^9, 3.615833114036128*^9, 3.6169363879882727`*^9, 
   3.6169436621336145`*^9, 3.6169490362689743`*^9, 3.6169532538566914`*^9, 
   3.6171025193511972`*^9, 3.620065416206623*^9, 3.6200686731556807`*^9, 
   3.621252683254292*^9, 3.6212530003454285`*^9, 3.6212557643665214`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"EnsureDirectoryExists", "[", "\"\<expr/model\>\"", "]"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.603305785068609*^9, 3.603305790575122*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"SetOptions", "[", 
   RowBox[{"WriteMatlabFunction", ",", "\[IndentingNewLine]", 
    RowBox[{"Directory", "\[Rule]", "\"\<expr/model\>\""}]}], 
   "\[IndentingNewLine]", "]"}], ";"}], "\n", 
 RowBox[{
  RowBox[{"SetOptions", "[", 
   RowBox[{"WriteMatlabFunction", ",", 
    RowBox[{"Arguments", "\[Rule]", 
     RowBox[{"{", "x", "}"}]}]}], "]"}], ";"}]}], "Input",
 CellChangeTimes->{{3.603305391107973*^9, 3.6033054527755947`*^9}, {
   3.603305604269405*^9, 3.6033056056727533`*^9}, {3.603305890096718*^9, 
   3.603305957862399*^9}, {3.603306025419586*^9, 3.603306027796489*^9}, {
   3.603306470794388*^9, 3.6033064807451487`*^9}, {3.60330659315565*^9, 
   3.6033066416884823`*^9}, {3.603307121763837*^9, 3.6033071242476463`*^9}, {
   3.603307312516921*^9, 3.603307313237064*^9}, 3.604173322512547*^9, 
   3.6043335386699543`*^9, 3.604333570810491*^9, {3.609638401286528*^9, 
   3.609638401653723*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<h_nsheel_sca\>\"", ",", 
    SubscriptBox["h", "nsheel"]}], "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<hdot_nsheel_sca\>\"", ",", 
    SubscriptBox["dh", "nsheel"]}], "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<h_nstoe_sca\>\"", ",", 
    SubscriptBox["h", "nstoe"]}], "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<hdot_nstoe_sca\>\"", ",", 
    SubscriptBox["dh", "nstoe"]}], "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<jpos_mat\>\"", ",", "jpos"}], "]"}], ";"}]}], "Input",
 CellChangeTimes->{{3.60330653418705*^9, 3.6033065547853327`*^9}, 
   3.6033065851120358`*^9, 3.6033066623126497`*^9, {3.603307082871387*^9, 
   3.6033070990380707`*^9}, {3.603307297957953*^9, 3.603307304275774*^9}, {
   3.6033078534839087`*^9, 3.60330785415394*^9}, {3.603307899563986*^9, 
   3.6033079000233097`*^9}, {3.60330807793055*^9, 3.603308110624433*^9}, {
   3.604173297175622*^9, 3.604173320690527*^9}, {3.604173440227056*^9, 
   3.6041734668700743`*^9}, {3.604308698718816*^9, 3.604308714012991*^9}, {
   3.6043359951197033`*^9, 3.604335999514217*^9}, 3.60433608004811*^9, {
   3.6102328841165113`*^9, 3.610232892649684*^9}, {3.610232932811667*^9, 
   3.6102329735877132`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"positions", "=", 
   RowBox[{"{", 
    RowBox[{"hip", ",", "com"}], "}"}]}], ";"}]], "Input",
 CellChangeTimes->{{3.610234651348221*^9, 3.61023466503728*^9}, 
   3.610275368915922*^9, {3.61067119626751*^9, 3.6106711979541073`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"Table", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<pe_\>\"", "<>", 
       RowBox[{"ToString", "[", "pos", "]"}], "<>", "\"\<_vec\>\""}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["pe", "pos"]}], "]"}], ";", "\[IndentingNewLine]", 
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<Je_\>\"", "<>", 
       RowBox[{"ToString", "[", "pos", "]"}], "<>", "\"\<_mat\>\""}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["Je", "pos"]}], "]"}], ";", "\[IndentingNewLine]", 
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<dJe_\>\"", "<>", 
       RowBox[{"ToString", "[", "pos", "]"}], "<>", "\"\<_mat\>\""}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["dJe", "pos"]}], "]"}], ";"}], "\[IndentingNewLine]", ",",
     "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"pos", ",", "positions"}], "}"}]}], "\[IndentingNewLine]", "]"}],
   ";"}]], "Input",
 CellChangeTimes->{{3.610234642970508*^9, 3.610234644566486*^9}, {
  3.61023467653016*^9, 3.6102347084155684`*^9}, {3.610235701381854*^9, 
  3.610235724269575*^9}}],

Cell[BoxData[
 RowBox[{"\[IndentingNewLine]", 
  RowBox[{"(*", 
   RowBox[{
    RowBox[{"WriteMatlabFunction", "[", 
     RowBox[{"\"\<D_mat\>\"", ",", "\[ScriptCapitalD]"}], "]"}], ";", 
    "\[IndentingNewLine]", 
    RowBox[{"WriteMatlabFunction", "[", 
     RowBox[{"\"\<C_mat\>\"", ",", "\[ScriptCapitalC]"}], "]"}], ";", 
    "\[IndentingNewLine]", 
    RowBox[{"WriteMatlabFunction", "[", 
     RowBox[{"\"\<G_vec\>\"", ",", "G"}], "]"}], ";"}], "*)"}]}]], "Input",
 CellChangeTimes->{{3.60330653418705*^9, 3.6033065547853327`*^9}, 
   3.6033065851120358`*^9, 3.6033066623126497`*^9, {3.603307082871387*^9, 
   3.6033070990380707`*^9}, {3.603307297957953*^9, 3.603307304275774*^9}, {
   3.6033078534839087`*^9, 3.60330785415394*^9}, {3.603307899563986*^9, 
   3.6033079000233097`*^9}, {3.60330807793055*^9, 3.603308110624433*^9}, {
   3.604173297175622*^9, 3.604173309579424*^9}, 3.606979755119309*^9, {
   3.606979785145961*^9, 3.6069797893461437`*^9}, {3.60715882785806*^9, 
   3.607158830632407*^9}, {3.607172805104198*^9, 3.607172807425518*^9}, {
   3.609502517455372*^9, 3.6095025236759567`*^9}, {3.609631780916326*^9, 
   3.609631791878319*^9}, {3.6102329834192266`*^9, 3.6102329877633467`*^9}, 
   3.6128322442784805`*^9, 3.61283276195409*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"\"\<V_sca\>\"", ",", "V"}], "]"}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{3.612832763281166*^9}],

Cell[BoxData[
 RowBox[{"(*", "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"\"\<De_mat\>\"", ",", "\[ScriptCapitalD]e"}], "]"}], ";", 
   "\[IndentingNewLine]", 
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"\"\<Ce_mat\>\"", ",", "\[ScriptCapitalC]e"}], "]"}], ";", 
   "\[IndentingNewLine]", 
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"\"\<Ge_vec\>\"", ",", "Ge"}], "]"}], ";", "\[IndentingNewLine]", 
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"\"\<Ge_vec\>\"", ",", "Ge"}], "]"}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.603306519680562*^9, 3.603306520660655*^9}, {
   3.603306687279323*^9, 3.603306732206258*^9}, {3.603307855483933*^9, 
   3.603307856021535*^9}, {3.604173305412436*^9, 3.604173313439563*^9}, {
   3.607158821528686*^9, 3.607158824504529*^9}, {3.6071728115029173`*^9, 
   3.607172814658256*^9}, 3.6096741109561377`*^9, {3.610232995544354*^9, 
   3.610233004895864*^9}, 3.6128322398302264`*^9, 3.6128327559177446`*^9}],

Cell[BoxData[
 RowBox[{
  RowBox[{"Table", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<pe_\>\"", "<>", 
       RowBox[{"ToString", "[", "pos", "]"}], "<>", "\"\<_vec\>\""}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["pe", "pos"]}], "]"}], ";", "\[IndentingNewLine]", 
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<Jh_\>\"", "<>", 
       RowBox[{"ToString", "[", "pos", "]"}], "<>", "\"\<_mat\>\""}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["Jh", "pos"]}], "]"}], ";", "\[IndentingNewLine]", 
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<dJh_\>\"", "<>", 
       RowBox[{"ToString", "[", "pos", "]"}], "<>", "\"\<_mat\>\""}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["dJh", "pos"]}], "]"}], ";"}], "\[IndentingNewLine]", ",",
     "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"pos", ",", "constraints"}], "}"}]}], "\[IndentingNewLine]", 
   "]"}], ";"}]], "Input",
 CellChangeTimes->{{3.60856121674434*^9, 3.608561232897498*^9}, {
   3.609499357001626*^9, 3.609499376952242*^9}, {3.6097760893409243`*^9, 
   3.60977610432578*^9}, 3.6102332031627617`*^9, {3.6102332434832773`*^9, 
   3.610233259493114*^9}, {3.610234284005848*^9, 3.610234286662195*^9}, {
   3.610234411417704*^9, 3.6102344673624496`*^9}, {3.610234503790845*^9, 
   3.610234513468536*^9}, {3.6102345436110353`*^9, 3.6102346076795063`*^9}, {
   3.610275382544046*^9, 3.610275383086954*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<h_rns_sca\>\"", ",", 
    SubscriptBox["r", "ns"]}], "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<Jh_rns_mat\>\"", ",", 
    SubscriptBox["Jh", "rns"]}], "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<h_qns_sca\>\"", ",", 
    SubscriptBox["q", "ns"]}], "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"\"\<Jh_qns_mat\>\"", ",", 
    SubscriptBox["Jh", "qns"]}], "]"}], ";"}]}], "Input",
 CellChangeTimes->{{3.6106807269893208`*^9, 3.610680727974526*^9}, {
  3.610849256808729*^9, 3.6108492684120703`*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Testing", "Section",
 CellChangeTimes->{{3.603999626562545*^9, 3.60399962865425*^9}}],

Cell[CellGroupData[{

Cell["Gravity Comp Inspection", "Subsection",
 CellChangeTimes->{{3.6039996302696123`*^9, 3.603999633234593*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{
    RowBox[{"Without", " ", "boom"}], ",", " ", 
    RowBox[{
    "we", " ", "have", " ", "correct", " ", "free", " ", "fall", " ", 
     "dynamics"}]}], " ", "*)"}], "\[IndentingNewLine]", 
  RowBox[{"(*", " ", 
   RowBox[{
    RowBox[{"With", " ", "boom"}], ",", " ", 
    RowBox[{
    "we", " ", "have", " ", "wigged", " ", "out", " ", "free", " ", "fall", 
     " ", 
     RowBox[{"dynamics", ".", " ", "Makes"}], " ", "sense", " ", "for", " ", 
     "free", " ", "fall", " ", "due", " ", "to", " ", "boom", " ", "swinging",
      " ", 
     RowBox[{"around", ".", " ", "However"}]}], ",", " ", 
    RowBox[{"if", " ", "we", " ", "pin", " ", "the", " ", "hip"}], ",", " ", 
    RowBox[{
    "the", " ", "boom", " ", "dynamics", " ", "no", " ", "longer", " ", 
     "should", " ", "have", " ", "any", " ", 
     RowBox[{"affect", ".", " ", "However"}]}], ",", " ", 
    RowBox[{
    "without", " ", "their", " ", "potential", " ", "energy", " ", 
     "balancing", " ", "the", " ", "system", " ", 
     RowBox[{"(", 
      RowBox[{"I", " ", "think"}], ")"}]}], ",", " ", 
    RowBox[{
    "the", " ", "system", " ", "does", " ", "not", " ", "behave", " ", "as", 
     " ", 
     RowBox[{"expected", ".", " ", "With"}], " ", "zero", " ", "input"}], ",",
     " ", 
    RowBox[{"the", " ", "links", " ", "get", " ", "all", " ", 
     RowBox[{"jangly", "."}]}]}], " ", "*)"}]}]], "Input",
 CellChangeTimes->{{3.60400003236578*^9, 3.6040001494346867`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"Drb", "=", 
    RowBox[{"\[ScriptCapitalD]eBody", "[", 
     RowBox[{"[", 
      RowBox[{
       RowBox[{
        RowBox[{"nb", "+", "1"}], ";;"}], ",", 
       RowBox[{"1", ";;", "nb"}]}], "]"}], "]"}]}], ";", 
   "\[IndentingNewLine]", 
   RowBox[{"Dbb", "=", 
    RowBox[{"\[ScriptCapitalD]eBody", "[", 
     RowBox[{"[", 
      RowBox[{
       RowBox[{"1", ";;", "nb"}], ",", 
       RowBox[{"1", ";;", "nb"}]}], "]"}], "]"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6039996390197573`*^9, 3.6039997045691977`*^9}, {
   3.6039998740572577`*^9, 3.603999877016952*^9}, {3.607201282021202*^9, 
   3.607201282903323*^9}, 3.612832028134118*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"Hb", "=", 
    RowBox[{
     RowBox[{
      RowBox[{"\[ScriptCapitalC]e", "[", 
       RowBox[{"[", 
        RowBox[{
         RowBox[{"1", ";;", "nb"}], ",", 
         RowBox[{"1", ";;", "nb"}]}], "]"}], "]"}], ".", "dqb"}], "+", 
     RowBox[{"Ge", "[", 
      RowBox[{"[", 
       RowBox[{"1", ";;", "nb"}], "]"}], "]"}]}]}], ";", 
   "\[IndentingNewLine]", 
   RowBox[{"Hr", "=", 
    RowBox[{
     RowBox[{
      RowBox[{
       RowBox[{"\[ScriptCapitalC]e", "[", 
        RowBox[{"[", 
         RowBox[{
          RowBox[{
           RowBox[{"nb", "+", "1"}], ";;"}], ",", 
          RowBox[{"1", ";;", "nb"}]}], "]"}], "]"}], ".", "dqb"}], "+", 
      RowBox[{"Ge", "[", 
       RowBox[{"[", 
        RowBox[{
         RowBox[{"nb", "+", "1"}], ";;"}], "]"}], "]"}]}], "//", 
     "Simplify"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6039997418378983`*^9, 3.603999845165856*^9}, 
   3.612832026845044*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"dq0subs", "=", 
    RowBox[{"Table", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"dq", "[", 
        RowBox[{"[", 
         RowBox[{"i", ",", "1"}], "]"}], "]"}], "\[Rule]", "0"}], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "ndof"}], "}"}]}], "]"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.60399992206046*^9, 3.6039999408711557`*^9}, 
   3.6128320245279117`*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{"-", 
       RowBox[{"Drb", ".", 
        RowBox[{"(", 
         RowBox[{
          RowBox[{"Inverse", "[", "Dbb", "]"}], ".", 
          RowBox[{"Ge", "[", 
           RowBox[{"[", 
            RowBox[{"1", ";;", "nb"}], "]"}], "]"}]}], ")"}]}]}], "+", 
      RowBox[{"Ge", "[", 
       RowBox[{"[", 
        RowBox[{
         RowBox[{"nb", "+", "1"}], ";;"}], "]"}], "]"}]}], "/.", "dq0subs"}], 
    "/.", "constsubs"}], "//", "Simplify"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6039998494866343`*^9, 3.603999905033039*^9}, {
   3.603999943804619*^9, 3.603999960826145*^9}, {3.6040078963770733`*^9, 
   3.604007900874929*^9}, {3.607201288930215*^9, 3.607201306841909*^9}, 
   3.6128320228758173`*^9}],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{"BAM", "!"}], " ", "*)"}]], "Input",
 CellChangeTimes->{{3.6040000228550367`*^9, 3.6040000244894953`*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{"%", "//", "Simplify"}], "\[IndentingNewLine]", 
  RowBox[{"(*", " ", 
   RowBox[{
    RowBox[{
    "This", " ", "yields", " ", "all", " ", "zeroes", " ", "when", " ", 
     "using", " ", "the", " ", "body"}], "-", 
    RowBox[{"only", " ", "inertia", " ", "matrix"}]}], " ", "*)"}], 
  "*)"}]], "Input",
 CellChangeTimes->{{3.603999963624419*^9, 3.603999966984702*^9}, {
  3.604001503709078*^9, 3.604001515012392*^9}}]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell["Control - Desired Values", "Section",
 CellChangeTimes->{{3.603468306269869*^9, 3.603468307671548*^9}, {
  3.604332435677476*^9, 3.604332449022006*^9}}],

Cell[CellGroupData[{

Cell["Linearized Position of the Hip", "Subsection",
 CellChangeTimes->{{3.6043293922392282`*^9, 3.604329396549217*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{"phip", "=", 
   RowBox[{
    RowBox[{
     RowBox[{
      SubscriptBox["pe", "hip"], "[", 
      RowBox[{"[", "1", "]"}], "]"}], "-", 
     RowBox[{
      SubscriptBox["pe", "stoe"], "[", 
      RowBox[{"[", "1", "]"}], "]"}]}], "//", "Simplify"}]}], "*)"}]], "Input",
 CellChangeTimes->{{3.607192222970207*^9, 3.607192230952386*^9}, {
   3.607488476235359*^9, 3.6074885605802593`*^9}, {3.607488631781313*^9, 
   3.6074886381936483`*^9}, {3.609441810790696*^9, 3.60944181127074*^9}, {
   3.610235941297831*^9, 3.6102359413874693`*^9}, 3.612832016001424*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{"J\[Delta]phip", "=", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"D", "[", 
      RowBox[{"phip", ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"Flatten", "[", "qe", "]"}], ",", "1"}], "}"}]}], "]"}], 
     "}"}], "/.", "q0subs"}]}], "*)"}]], "Input",
 CellChangeTimes->{{3.604329056299355*^9, 3.604329116484798*^9}, 
   3.604329387464797*^9, {3.604332627548087*^9, 3.60433262957438*^9}, {
   3.604336728797673*^9, 3.604336729204782*^9}, {3.606952853188726*^9, 
   3.60695286771725*^9}, {3.6069529671884203`*^9, 3.606952967563146*^9}, 
   3.6128320145923433`*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{"\[Delta]phip", "=", 
   RowBox[{
    RowBox[{"(", 
     RowBox[{"J\[Delta]phip", ".", "qe"}], ")"}], "[", 
    RowBox[{"[", 
     RowBox[{"1", ",", "1"}], "]"}], "]"}]}], "*)"}]], "Input",
 CellChangeTimes->{{3.6043291102524548`*^9, 3.604329137172207*^9}, {
   3.605996443567102*^9, 3.60599644431593*^9}, {3.606953094601965*^9, 
   3.606953100168469*^9}, 3.6128320122352085`*^9}]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell["Control - Actual Values   Need modifications!", "Section",
 CellChangeTimes->{{3.604332439625369*^9, 3.604332443850239*^9}, {
  3.6128392502722006`*^9, 3.6128392505762177`*^9}, {3.6128737926063485`*^9, 
  3.612873798492937*^9}}],

Cell[BoxData[
 RowBox[{"\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"\[ScriptCapitalX]", "=", 
     RowBox[{"Join", "[", 
      RowBox[{"qe", ",", "dqe"}], "]"}]}], ";"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"d\[ScriptCapitalX]", "=", 
     RowBox[{"D", "[", 
      RowBox[{"\[ScriptCapitalX]", ",", "t"}], "]"}]}], ";"}]}]}]], "Input",
 CellChangeTimes->{{3.607191414747116*^9, 3.607191477846963*^9}, {
  3.609776126781724*^9, 3.609776127670389*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"Subscript", "[", 
    RowBox[{"y", ",", " ", "ComX"}], "]"}], "=", 
   RowBox[{"COM", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["y", "ComZ"], "=", 
   RowBox[{"COM", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{
    SubscriptBox["y", "TorsoAngle"], "=", 
    RowBox[{
     RowBox[{
      SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
     RowBox[{
      SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
     RowBox[{
      SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
     RowBox[{
      SubscriptBox["\[Theta]", "4"], "[", "t", "]"}]}]}], ";"}], 
  "\[IndentingNewLine]", 
  RowBox[{"(*", 
   RowBox[{
    RowBox[{
     SubscriptBox["r", 
      RowBox[{"nsheel", "/", "ship"}]], "=", 
     RowBox[{
      RowBox[{
       RowBox[{
        SubscriptBox["p", "nsheel"], "[", "\[Theta]", "]"}], "-", 
       RowBox[{
        SubscriptBox["p", "ship"], "[", "\[Theta]", "]"}]}], "//", 
      "Simplify"}]}], ";", "\n", 
    RowBox[{"NsSlope", "=", 
     FractionBox[
      RowBox[{
       SubscriptBox["r", 
        RowBox[{"nsheel", "/", "ship"}]], "[", 
       RowBox[{"[", "1", "]"}], "]"}], 
      RowBox[{
       SubscriptBox["r", 
        RowBox[{"nsheel", "/", "ship"}]], "[", 
       RowBox[{"[", "3", "]"}], "]"}]]}], ";", "\n", 
    RowBox[{
     SubscriptBox["y", "DeltaNsSlope"], "=", 
     RowBox[{
      RowBox[{"(", 
       RowBox[{
        RowBox[{"(", 
         RowBox[{
          RowBox[{"D", "[", 
           RowBox[{"NsSlope", ",", 
            RowBox[{"{", 
             RowBox[{
              RowBox[{"Flatten", "[", "q", "]"}], ",", "1"}], "}"}]}], "]"}], 
          "/.", "q0subs"}], ")"}], ".", "q"}], ")"}], "[", 
      RowBox[{"[", "1", "]"}], "]"}]}], ";"}], "*)"}], "\[IndentingNewLine]", 
  RowBox[{"(*", 
   RowBox[{
    RowBox[{
     SubscriptBox["y", "StanceKnee"], "=", 
     RowBox[{"q", "[", 
      RowBox[{"[", "4", "]"}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{
     SubscriptBox["y", "NonStanceKnee"], " ", "=", " ", 
     RowBox[{"q", "[", 
      RowBox[{"[", "7", "]"}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{
     SubscriptBox["y", "NonStanceSpring"], " ", "=", " ", 
     RowBox[{"q", "[", 
      RowBox[{"[", "9", "]"}], "]"}]}], ";"}], "*)"}], "\[IndentingNewLine]", 
  RowBox[{"(*", 
   RowBox[{
    RowBox[{
     SubscriptBox["y", "StanceSpring"], " ", "=", " ", 
     RowBox[{"q", "[", 
      RowBox[{"[", "2", "]"}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{
     SubscriptBox["y", "StanceAnkle"], "=", 
     RowBox[{"q", "[", 
      RowBox[{"[", "3", "]"}], "]"}]}], ";"}], "*)"}], "\[IndentingNewLine]", 
  RowBox[{"(*", 
   RowBox[{
    RowBox[{
     SubscriptBox["y", "NonStanceAnkle"], " ", "=", " ", 
     RowBox[{"q", "[", 
      RowBox[{"[", "8", "]"}], "]"}]}], ";"}], 
   "*)"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["y", "StanceFoot"], "=", 
   RowBox[{"q", "[", 
    RowBox[{"[", "1", "]"}], "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{" ", 
  RowBox[{
   RowBox[{
    SubscriptBox["y", "NonStanceFootX"], "=", 
    RowBox[{
     RowBox[{
      SubscriptBox["p", "nsfoot"], "[", "\[Theta]", "]"}], 
     "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], 
   ";"}]}], "\[IndentingNewLine]", 
 RowBox[{" ", 
  RowBox[{
   RowBox[{
    SubscriptBox["y", "NonStanceFootZ"], "=", 
    RowBox[{
     RowBox[{
      SubscriptBox["p", "nsfoot"], "[", "\[Theta]", "]"}], 
     "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}]}], 
   ";"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["y", "NonStanceFootAng"], "=", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"1", ",", "1", ",", "1", ",", "1", ",", 
      RowBox[{"-", "1"}], ",", 
      RowBox[{"-", "1"}], ",", 
      RowBox[{"-", "1"}]}], "}"}], ".", "q"}]}], ";"}]}], "Input",
 CellChangeTimes->{{3.604332598217959*^9, 3.6043325990896263`*^9}, {
   3.6070342880976057`*^9, 3.607034304303761*^9}, {3.6070642942291517`*^9, 
   3.6070643320862417`*^9}, {3.607191500204646*^9, 3.60719153088168*^9}, {
   3.609442082998755*^9, 3.60944208878187*^9}, {3.609776128941758*^9, 
   3.6097761296212397`*^9}, {3.61023849555875*^9, 3.610238581874323*^9}, {
   3.6102390756597757`*^9, 3.610239157693063*^9}, {3.6102392769433327`*^9, 
   3.610239329762054*^9}, {3.610328890729269*^9, 3.61032892589664*^9}, {
   3.6103804680808*^9, 3.610380474326733*^9}, {3.610648890199375*^9, 
   3.610648997115656*^9}, {3.612807980625239*^9, 3.6128080308712387`*^9}, {
   3.6128080808072386`*^9, 3.612808132357239*^9}, {3.6128333651235895`*^9, 
   3.612833388049901*^9}, {3.612833433777516*^9, 3.6128334580719056`*^9}, {
   3.6128335295879965`*^9, 3.6128335516052556`*^9}, {3.6128335972718678`*^9, 
   3.6128336082314944`*^9}, {3.61283368438385*^9, 3.612833684525858*^9}, 
   3.6128392545184436`*^9, {3.612873271097203*^9, 3.612873301579251*^9}, {
   3.612873363019394*^9, 3.612873444415533*^9}, {3.6128735264897394`*^9, 
   3.612873565655656*^9}, {3.6128736152516146`*^9, 3.6128736545445433`*^9}, {
   3.612873803003388*^9, 3.612873827342822*^9}, {3.6128845005790386`*^9, 
   3.6128845012571063`*^9}, {3.6128847677467527`*^9, 3.612884781171095*^9}, {
   3.6128848275267305`*^9, 3.6128848468606634`*^9}, {3.6128850706210375`*^9, 
   3.6128850826372385`*^9}, {3.6128852180787816`*^9, 3.612885228825856*^9}, {
   3.612885378297802*^9, 3.612885386471619*^9}, {3.6128854358265543`*^9, 
   3.612885455854557*^9}, {3.6131491046410265`*^9, 3.6131491048000107`*^9}, 
   3.6131495800353556`*^9, {3.6131504981473556`*^9, 3.6131504998843555`*^9}, {
   3.6131719330633554`*^9, 3.6131719492943554`*^9}, {3.616951257416067*^9, 
   3.61695126984431*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", 
   RowBox[{"outputs", "=", 
    RowBox[{"{", 
     RowBox[{
     "StanceKnee", ",", "NonStanceKnee", ",", "TorsoAngle", ",", 
      "StanceAnkle", ",", "NonStanceAnkle", ",", "StanceSpring", ",", 
      "NonStanceSpring", ",", "DeltaNsSlope", ",", "StanceFoot", ",", 
      "NonStanceFoot"}], "}"}]}], "*)"}], "\[IndentingNewLine]", 
  RowBox[{"outputs", "=", 
   RowBox[{"{", 
    RowBox[{
    "ComX", ",", "ComZ", ",", "TorsoAngle", ",", "NonStanceFootX", ",", 
     "NonStanceFootZ", ",", "NonStanceFootAng"}], "}"}]}]}]], "Input",
 CellChangeTimes->{{3.610238589678871*^9, 3.6102386360019693`*^9}, {
  3.610239168637702*^9, 3.610239187213539*^9}, {3.6102393351554613`*^9, 
  3.610239354414249*^9}, {3.610380287350252*^9, 3.610380301485305*^9}, {
  3.610380482611356*^9, 3.610380483516859*^9}, {3.6128736806341524`*^9, 
  3.612873779879076*^9}, {3.6131495733793554`*^9, 3.613149575050356*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "ComX", ",", "ComZ", ",", "TorsoAngle", ",", "NonStanceFootX", ",", 
   "NonStanceFootZ", ",", "NonStanceFootAng"}], "}"}]], "Output",
 CellChangeTimes->{{3.610239187548757*^9, 3.6102391963852167`*^9}, 
   3.610239358803967*^9, 3.610240109769683*^9, 3.610380310916729*^9, 
   3.6103804838973494`*^9, 3.610649004256421*^9, 3.610651961425473*^9, 
   3.6125232645751514`*^9, 3.612545359544639*^9, 3.612546055053183*^9, 
   3.6128330804283056`*^9, 3.6128346045024776`*^9, 3.6128717352206306`*^9, 
   3.61287395293938*^9, 3.612884652055185*^9, 3.6128849515681334`*^9, 
   3.612885636895659*^9, 3.6131492431283555`*^9, 3.6131496860373554`*^9, 
   3.6158331156861277`*^9, 3.6169363896394377`*^9, 3.6169436638877897`*^9, 
   3.616949038058153*^9, 3.616953255559861*^9, 3.617102520923354*^9, 
   3.6200654178596234`*^9, 3.6200686748588505`*^9, 3.621252688585597*^9, 
   3.621253004790683*^9, 3.621255768302747*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"Table", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{
     RowBox[{
      SubscriptBox["Jy", "output"], " ", "=", " ", 
      RowBox[{
       SubscriptBox["\[PartialD]", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"Flatten", "[", "\[ScriptCapitalX]", "]"}], ",", "1"}], 
         "}"}]], 
       RowBox[{"Flatten", "[", 
        SubscriptBox["y", "output"], "]"}]}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      SubscriptBox["dJy", "output"], "=", 
      RowBox[{
       SubscriptBox["\[PartialD]", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"Flatten", "[", "\[ScriptCapitalX]", "]"}], ",", "1"}], 
         "}"}]], 
       RowBox[{"Flatten", "[", 
        RowBox[{
         SubscriptBox["Jy", "output"], ".", "d\[ScriptCapitalX]"}], "]"}]}]}],
      ";"}], "\[IndentingNewLine]", ",", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"output", ",", "outputs"}], "}"}]}], "\[IndentingNewLine]", 
   "]"}], ";"}]], "Input",
 CellChangeTimes->{{3.604332659342657*^9, 3.604332714713208*^9}, 
   3.604333123841318*^9, {3.604333218769383*^9, 3.6043332518061657`*^9}, {
   3.604339839195847*^9, 3.604339911178049*^9}, {3.607207061671023*^9, 
   3.60720707045886*^9}, {3.607207197060774*^9, 3.6072071993192053`*^9}, 
   3.6077791018521757`*^9, 3.607779179351905*^9, {3.6094421335586843`*^9, 
   3.609442160998301*^9}, {3.609776132691123*^9, 3.609776134388383*^9}, 
   3.610238491760785*^9, {3.610238639040636*^9, 3.610238669877143*^9}, {
   3.610238969569256*^9, 3.610238972804284*^9}, {3.6102392022597713`*^9, 
   3.6102392059814034`*^9}, {3.612885345827555*^9, 3.612885347548727*^9}, {
   3.6128853950154734`*^9, 3.6128854164596176`*^9}, {3.6128855205040207`*^9, 
   3.612885531586129*^9}}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Save Control Expressions", "Section",
 CellChangeTimes->{{3.6043324273924923`*^9, 3.604332431087575*^9}, {
  3.6043334849906797`*^9, 3.604333486063911*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"EnsureDirectoryExists", "[", "\"\<expr/control\>\"", "]"}], 
  ";"}]], "Input",
 CellChangeTimes->{{3.603305785068609*^9, 3.603305790575122*^9}, {
  3.6043336013113327`*^9, 3.6043336019765587`*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"SetOptions", "[", 
   RowBox[{"WriteMatlabFunction", ",", "\[IndentingNewLine]", 
    RowBox[{"Directory", "\[Rule]", "\"\<expr/control\>\""}]}], 
   "\[IndentingNewLine]", "]"}], ";"}]], "Input",
 CellChangeTimes->{{3.603305391107973*^9, 3.6033054527755947`*^9}, {
   3.603305604269405*^9, 3.6033056056727533`*^9}, {3.603305890096718*^9, 
   3.603305957862399*^9}, {3.603306025419586*^9, 3.603306027796489*^9}, {
   3.603306470794388*^9, 3.6033064807451487`*^9}, {3.60330659315565*^9, 
   3.6033066416884823`*^9}, {3.603307121763837*^9, 3.6033071242476463`*^9}, {
   3.603307312516921*^9, 3.603307313237064*^9}, 3.604173322512547*^9, 
   3.6043335386699543`*^9, 3.604333570810491*^9, {3.604333603443852*^9, 
   3.604333626753359*^9}}],

Cell[CellGroupData[{

Cell["Desired Values", "Subsection",
 CellChangeTimes->{{3.604334052192972*^9, 3.604334055687903*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"SetOptions", "[", 
    RowBox[{"WriteMatlabFunction", ",", "\[IndentingNewLine]", 
     RowBox[{"Arguments", "\[Rule]", 
      RowBox[{"{", "x", "}"}]}], ",", "\[IndentingNewLine]", 
     RowBox[{"Formatter", "\[Rule]", "generalFormatter"}]}], 
    "\[IndentingNewLine]", "]"}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.603305391107973*^9, 3.6033054527755947`*^9}, {
   3.603305604269405*^9, 3.6033056056727533`*^9}, {3.603305890096718*^9, 
   3.603305957862399*^9}, {3.603306025419586*^9, 3.603306027796489*^9}, {
   3.603306470794388*^9, 3.6033064807451487`*^9}, {3.60330659315565*^9, 
   3.6033066416884823`*^9}, {3.603307121763837*^9, 3.6033071242476463`*^9}, {
   3.603307312516921*^9, 3.603307313237064*^9}, 3.604173322512547*^9, 
   3.6043335386699543`*^9, 3.604333570810491*^9, {3.604333603443852*^9, 
   3.604333725775069*^9}, {3.604333881333478*^9, 3.604333921498735*^9}, {
   3.604336650079411*^9, 3.6043366706775713`*^9}, {3.604336771160737*^9, 
   3.6043367712162113`*^9}, 3.6128319928561*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"\"\<delta_phip_sca\>\"", ",", "\[Delta]phip"}], "]"}], ";", 
   "\[IndentingNewLine]", 
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"\"\<Jdelta_phip_sca\>\"", ",", "J\[Delta]phip"}], "]"}], ";"}], 
  "*)"}]], "Input",
 CellChangeTimes->{{3.604336792302882*^9, 3.604336809327835*^9}, 
   3.6128319883468423`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Actual Values", "Subsection",
 CellChangeTimes->{{3.6043340592674217`*^9, 3.604334060692088*^9}}],

Cell[CellGroupData[{

Cell[BoxData["outputs"], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "ComX", ",", "ComZ", ",", "TorsoAngle", ",", "NonStanceFootX", ",", 
   "NonStanceFootZ", ",", "NonStanceFootAng"}], "}"}]], "Output",
 CellChangeTimes->{3.610239047081275*^9, 3.610239232082204*^9, 
  3.610240123029666*^9, 3.610380341893854*^9, 3.610380489681108*^9, 
  3.6106490152043467`*^9, 3.6128856369126606`*^9, 3.613149243234356*^9, 
  3.6131496860943556`*^9, 3.615833115736128*^9, 3.616936389686443*^9, 
  3.6169436639447956`*^9, 3.616949038117159*^9, 3.61695325564287*^9, 
  3.61710252097936*^9, 3.6200654179086237`*^9, 3.6200686748868537`*^9, 
  3.621252688872613*^9, 3.621253004983694*^9, 3.6212557685057583`*^9}]
}, Open  ]],

Cell[BoxData[{
 RowBox[{
  RowBox[{"SetOptions", "[", 
   RowBox[{"WriteMatlabFunction", ",", "\[IndentingNewLine]", 
    RowBox[{"Arguments", "\[Rule]", 
     RowBox[{"{", "x", "}"}]}], ",", "\[IndentingNewLine]", 
    RowBox[{"Formatter", "\[Rule]", "generalFormatter"}]}], 
   "\[IndentingNewLine]", "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"Table", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<y_\>\"", "<>", 
       RowBox[{"ToString", "[", "output", "]"}]}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["y", "output"]}], "]"}], ";", "\[IndentingNewLine]", 
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<Jy_\>\"", "<>", 
       RowBox[{"ToString", "[", "output", "]"}]}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["Jy", "output"]}], "]"}], ";", "\[IndentingNewLine]", 
     RowBox[{"FileName", "=", 
      RowBox[{"\"\<dJy_\>\"", "<>", 
       RowBox[{"ToString", "[", "output", "]"}]}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"WriteMatlabFunction", "[", 
      RowBox[{"FileName", ",", 
       SubscriptBox["dJy", "output"]}], "]"}], ";"}], "\[IndentingNewLine]", 
    ",", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{"output", ",", "outputs"}], "}"}]}], "\[IndentingNewLine]", 
   "]"}], ";"}]}], "Input",
 CellChangeTimes->{{3.610238824536819*^9, 3.610238910206658*^9}, {
  3.6102392347602453`*^9, 3.610239243854045*^9}}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  SubscriptBox["y", "ComVX"], "=", 
  RowBox[{"D", "[", 
   RowBox[{
    SubscriptBox["y", "ComX"], ",", "t"}], "]"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   SubscriptBox["y", "ComVZ"], "=", 
   RowBox[{"D", "[", 
    RowBox[{
     SubscriptBox["y", "ComZ"], ",", "t"}], "]"}]}], "\[IndentingNewLine]", 
  RowBox[{"(*", 
   RowBox[{
    RowBox[{"SetOptions", "[", 
     RowBox[{"WriteMatlabFunction", ",", "\[IndentingNewLine]", 
      RowBox[{"Arguments", "\[Rule]", 
       RowBox[{"{", "x", "}"}]}], ",", "\[IndentingNewLine]", 
      RowBox[{"Formatter", "\[Rule]", "generalFormatter"}]}], 
     "\[IndentingNewLine]", "]"}], ";"}], "*)"}]}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"FileName", "=", "\"\<y_ComVX\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"WriteMatlabFunction", "[", 
  RowBox[{"FileName", ",", 
   SubscriptBox["y", "ComVX"]}], "]"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"FileName", "=", "\"\<y_ComVZ\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"WriteMatlabFunction", "[", 
  RowBox[{"FileName", ",", 
   SubscriptBox["y", "ComVZ"]}], "]"}]}], "Input",
 CellChangeTimes->{{3.615832841312128*^9, 3.6158328417121277`*^9}, {
   3.6158329072141275`*^9, 3.615832934018128*^9}, {3.6158338008911276`*^9, 
   3.6158338297851276`*^9}, 3.617102852131472*^9, {3.6171029134045987`*^9, 
   3.61710295332559*^9}, {3.6171030016014175`*^9, 3.6171030055998173`*^9}, {
   3.6171030559288497`*^9, 3.617103068321089*^9}}],

Cell[BoxData[
 RowBox[{
  FractionBox["1", "70452500000"], 
  RowBox[{"(", 
   RowBox[{
    RowBox[{"70452500000", " ", 
     RowBox[{
      SuperscriptBox[
       SubscriptBox["r", "x"], "\[Prime]",
       MultilineFunction->None], "[", "t", "]"}]}], "-", 
    RowBox[{"3452578425", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox[
       SubscriptBox["\[Theta]", "1"], "\[Prime]",
       MultilineFunction->None], "[", "t", "]"}]}], "+", 
    RowBox[{"9968927475", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox[
       SubscriptBox["\[Theta]", "1"], "\[Prime]",
       MultilineFunction->None], "[", "t", "]"}]}], "-", 
    RowBox[{"25658269992", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "-", 
    RowBox[{"21731369032", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "-", 
    RowBox[{"6540376590", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "+", 
    RowBox[{"6900526968", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "5"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "5"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "+", 
    RowBox[{"2973626008", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "6"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "5"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "6"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "+", 
    RowBox[{"126408575", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "7"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "5"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "6"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "7"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "-", 
    RowBox[{"329502525", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "7"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "5"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "6"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "7"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}]}], 
   ")"}]}]], "Output",
 CellChangeTimes->{{3.617102955281786*^9, 3.617102973890647*^9}, 
   3.6171030071699743`*^9, {3.6171030563578925`*^9, 3.617103068913148*^9}, 
   3.620065497024085*^9, 3.620068675609926*^9, 3.621253007138817*^9, 
   3.6212559442378097`*^9}],

Cell[BoxData[
 RowBox[{
  FractionBox["1", "70452500000"], 
  RowBox[{"(", 
   RowBox[{
    RowBox[{"70452500000", " ", 
     RowBox[{
      SuperscriptBox[
       SubscriptBox["r", "z"], "\[Prime]",
       MultilineFunction->None], "[", "t", "]"}]}], "-", 
    RowBox[{"9968927475", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox[
       SubscriptBox["\[Theta]", "1"], "\[Prime]",
       MultilineFunction->None], "[", "t", "]"}]}], "-", 
    RowBox[{"3452578425", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox[
       SubscriptBox["\[Theta]", "1"], "\[Prime]",
       MultilineFunction->None], "[", "t", "]"}]}], "-", 
    RowBox[{"25658269992", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "-", 
    RowBox[{"21731369032", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "-", 
    RowBox[{"6540376590", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "+", 
    RowBox[{"6900526968", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "5"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "5"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "+", 
    RowBox[{"2973626008", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "6"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "5"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "6"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "+", 
    RowBox[{"329502525", " ", 
     RowBox[{"Cos", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "7"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "5"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "6"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "7"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}], "+", 
    RowBox[{"126408575", " ", 
     RowBox[{"Sin", "[", 
      RowBox[{
       RowBox[{
        SubscriptBox["\[Theta]", "1"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "2"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "3"], "[", "t", "]"}], "+", 
       RowBox[{
        SubscriptBox["\[Theta]", "4"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "5"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "6"], "[", "t", "]"}], "-", 
       RowBox[{
        SubscriptBox["\[Theta]", "7"], "[", "t", "]"}]}], "]"}], " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "1"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "2"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "3"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "+", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "4"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "5"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "6"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}], "-", 
       RowBox[{
        SuperscriptBox[
         SubscriptBox["\[Theta]", "7"], "\[Prime]",
         MultilineFunction->None], "[", "t", "]"}]}], ")"}]}]}], 
   ")"}]}]], "Output",
 CellChangeTimes->{{3.617102955281786*^9, 3.617102973890647*^9}, 
   3.6171030071699743`*^9, {3.6171030563578925`*^9, 3.617103068913148*^9}, 
   3.620065497024085*^9, 3.620068675609926*^9, 3.621253007138817*^9, 
   3.621255944284812*^9}]
}, Open  ]],

Cell[BoxData[""], "Input",
 CellChangeTimes->{
  3.615832839657128*^9, {3.6158329404751277`*^9, 3.615832966168128*^9}, {
   3.6169498655808973`*^9, 3.6169498665329924`*^9}, 3.6171029188841467`*^9}],

Cell[BoxData[""], "Input",
 CellChangeTimes->{{3.615832969640128*^9, 3.6158329742311277`*^9}, {
   3.615833805154128*^9, 3.6158338075141277`*^9}, 3.617102929484206*^9}],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{"yout", " ", "=", 
   RowBox[{"Table", "[", 
    RowBox[{
     SubscriptBox["y", "output"], ",", 
     RowBox[{"{", 
      RowBox[{"output", ",", "outputs"}], "}"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"outputs", "=", 
   RowBox[{"{", 
    RowBox[{
    "ComX", ",", "ComZ", ",", "TorsoAngle", ",", "NonStanceFootX", ",", 
     "NonStanceFootZ", ",", "NonStanceFootAng"}], "}"}]}], 
  "\[IndentingNewLine]"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"yout2", " ", "=", " ", 
   RowBox[{"ArrayReshape", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["y", "ComX"], ",", 
       SubscriptBox["y", "ComZ"], ",", 
       SubscriptBox["y", "TorsoAngle"], ",", 
       SubscriptBox["y", "NonStanceFootX"], ",", 
       SubscriptBox["y", "NonStanceFootZ"], ",", 
       SubscriptBox["y", "NonStanceFootAng"]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"6", ",", "1"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"FileName", "=", "\"\<yout\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"FileName", ",", "yout2"}], "]"}], ";"}], "\[IndentingNewLine]", 
  RowBox[{"(*", 
   RowBox[{
    RowBox[{"RandomInteger", "[", 
     RowBox[{"5", ",", 
      RowBox[{"{", 
       RowBox[{"5", ",", "5"}], "}"}]}], "]"}], "//", "ToMatlab"}], 
   "*)"}]}], "\[IndentingNewLine]"}], "Input",
 CellChangeTimes->{{3.6169362222667027`*^9, 3.616936281767652*^9}, {
   3.616936771825653*^9, 3.616936842131683*^9}, {3.6169370315606236`*^9, 
   3.6169370432767954`*^9}, {3.616937101980665*^9, 3.616937182008667*^9}, {
   3.6169372684623117`*^9, 3.616937272987764*^9}, {3.6169373127277374`*^9, 
   3.616937343806845*^9}, {3.6169375896734295`*^9, 3.6169375955930214`*^9}, {
   3.616938202253681*^9, 3.6169382129977555`*^9}, {3.616938322114666*^9, 
   3.616938352596714*^9}, {3.616938525344987*^9, 3.6169385402094736`*^9}, {
   3.6169385959640484`*^9, 3.6169385971531672`*^9}, 3.616943344437848*^9, {
   3.616943400168421*^9, 3.616943407336138*^9}, {3.6169434430097046`*^9, 
   3.6169434580102043`*^9}, {3.6169434900844116`*^9, 3.616943491810584*^9}, {
   3.6169439991653147`*^9, 3.6169440140538034`*^9}, {3.616944044271825*^9, 
   3.6169440853529325`*^9}, {3.6169441236497617`*^9, 
   3.6169441296653633`*^9}, {3.616944171266523*^9, 3.6169441834437404`*^9}, {
   3.616944214748871*^9, 3.6169443222716217`*^9}, {3.6169451570940957`*^9, 
   3.616945175503937*^9}, {3.616945246146*^9, 3.6169452721496*^9}, {
   3.6169475280101633`*^9, 3.616947603840746*^9}, {3.6169483232156763`*^9, 
   3.616948383436698*^9}, 3.6169484178351374`*^9, {3.616948455725926*^9, 
   3.6169486083291845`*^9}, {3.6169486401483665`*^9, 3.616948671532504*^9}, {
   3.616948715509902*^9, 3.6169487563099813`*^9}, {3.6169488983961887`*^9, 
   3.616948926669016*^9}, {3.616949736274968*^9, 3.616949739026243*^9}, {
   3.616950017253063*^9, 3.616950044805818*^9}, {3.6169501448178186`*^9, 
   3.616950207386074*^9}, {3.616950238352171*^9, 3.6169503236787024`*^9}, 
   3.6169504589022236`*^9, {3.6169505278391166`*^9, 3.6169505521925516`*^9}, {
   3.6169506139147234`*^9, 3.616950706077939*^9}, {3.6169508423075604`*^9, 
   3.6169509956248903`*^9}, {3.616951502779601*^9, 3.6169515312434473`*^9}, {
   3.616951574738796*^9, 3.616951576650987*^9}, {3.616951637551077*^9, 
   3.6169516798743086`*^9}, 3.6169520999853153`*^9, {3.6169521917724934`*^9, 
   3.616952195588875*^9}, {3.616952514263739*^9, 3.6169525454328556`*^9}, {
   3.6169527336296735`*^9, 3.6169527465989704`*^9}, {3.616952810136324*^9, 
   3.616952867733083*^9}, {3.61695298331964*^9, 3.616953006745982*^9}, 
   3.6169530517204795`*^9, {3.616953780149315*^9, 3.6169538347557755`*^9}, 
   3.616954002739572*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "ComX", ",", "ComZ", ",", "TorsoAngle", ",", "NonStanceFootX", ",", 
   "NonStanceFootZ", ",", "NonStanceFootAng"}], "}"}]], "Output",
 CellChangeTimes->{{3.6169506919805293`*^9, 3.616950717012032*^9}, 
   3.6169508499853277`*^9, 3.6169509004673758`*^9, 3.6169509600943375`*^9, 
   3.616950996153943*^9, 3.6169515778841105`*^9, 3.616951683831704*^9, {
   3.616952104257743*^9, 3.6169521281131277`*^9}, 3.616952212709587*^9, 
   3.6169522771410294`*^9, 3.616952431620476*^9, {3.6169524914954624`*^9, 
   3.6169525465699697`*^9}, 3.616952748554166*^9, {3.616952817264036*^9, 
   3.6169528682281322`*^9}, 3.616953007341042*^9, 3.61695305252756*^9, 
   3.616953346930998*^9, 3.616953815575857*^9, 3.617102609968258*^9, 
   3.620065497065089*^9, 3.620068675641929*^9, 3.621253007290826*^9, 
   3.6212559444308205`*^9}]
}, Open  ]],

Cell[BoxData[{
 RowBox[{
  RowBox[{"Jyout", " ", "=", " ", 
   RowBox[{"Table", "[", 
    RowBox[{
     SubscriptBox["Jy", "output"], ",", 
     RowBox[{"{", 
      RowBox[{"output", ",", "outputs"}], "}"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"Jyout2", " ", "=", 
   RowBox[{"ArrayReshape", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        SubscriptBox["Jy", "ComX"], "}"}], ",", 
       RowBox[{"{", 
        SubscriptBox["Jy", "ComZ"], "}"}], ",", 
       RowBox[{"{", 
        SubscriptBox["Jy", "TorsoAngle"], "}"}], ",", 
       RowBox[{"{", 
        SubscriptBox["Jy", "NonStanceFootX"], "}"}], ",", 
       RowBox[{"{", 
        SubscriptBox["Jy", "NonStanceFootZ"], "}"}], ",", 
       RowBox[{"{", 
        SubscriptBox["Jy", "NonStanceFootAng"], "}"}]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"6", ",", "18"}], "}"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"FileName", "=", "\"\<Jyout\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"WriteMatlabFunction", "[", 
    RowBox[{"FileName", ",", "Jyout2"}], "]"}], ";"}], 
  "\[IndentingNewLine]"}], "\[IndentingNewLine]"}], "Input",
 CellChangeTimes->{{3.616953838651165*^9, 3.616953884871786*^9}, 
   3.6169539460589046`*^9, {3.6169540196632643`*^9, 3.6169540214574437`*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{"dJyout", " ", "=", " ", 
   RowBox[{"Table", "[", 
    RowBox[{
     SubscriptBox["dJy", "output"], ",", 
     RowBox[{"{", 
      RowBox[{"output", ",", "outputs"}], "}"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"dJyout2", " ", "=", " ", 
   RowBox[{"ArrayReshape", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["dJy", "ComX"], ",", 
       SubscriptBox["dJy", "ComZ"], ",", 
       SubscriptBox["dJy", "TorsoAngle"], ",", 
       SubscriptBox["dJy", "NonStanceFootX"], ",", 
       SubscriptBox["dJy", "NonStanceFootZ"], ",", 
       SubscriptBox["dJy", "NonStanceFootAng"]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"6", ",", "18"}], "}"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"FileName", "=", "\"\<dJy_out\>\""}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"WriteMatlabFunction", "[", 
   RowBox[{"FileName", ",", "dJyout2"}], "]"}], ";"}]}], "Input",
 CellChangeTimes->{{3.616954026753973*^9, 3.6169540305703545`*^9}, {
  3.616954115701867*^9, 3.6169541253898354`*^9}}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Save to C++", "Section",
 CellChangeTimes->{{3.6043086541481333`*^9, 3.604308655369878*^9}}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"argSet", "=", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"t", ",", "\"\<double\>\""}], "}"}], ",", 
      RowBox[{"{", 
       RowBox[{"aRow", ",", "\"\<Eigen::VectorXd\>\""}], "}"}]}], "}"}]}], 
   ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.603468461133635*^9, 3.603468467220261*^9}, 
   3.612523167688464*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{
    RowBox[{"formatter", "[", "expr_", "]"}], ":=", 
    RowBox[{"expr", "/.", 
     RowBox[{"{", 
      RowBox[{
       SubscriptBox["c", "i_"], "\[RuleDelayed]", 
       RowBox[{"aRow", "[", "i", "]"}]}], "}"}]}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6034685327552843`*^9, 3.60346854320223*^9}, 
   3.6125231694576406`*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"defSet", "=", 
    RowBox[{"{", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"\"\<y_TimeExtCwf\>\"", ",", "argSet", ",", 
        RowBox[{"formatter", "[", "ExtCwf", "]"}]}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"{", 
       RowBox[{"\"\<dy_TimeExtCwf\>\"", ",", "argSet", ",", 
        RowBox[{"formatter", "[", "dExtCwf", "]"}]}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"{", 
       RowBox[{"\"\<ddy_TimeExtCwf\>\"", ",", "argSet", ",", 
        RowBox[{"formatter", "[", "ddExtCwf", "]"}]}], "}"}]}], 
     "\[IndentingNewLine]", "}"}]}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.604088399596466*^9, 3.604088427454348*^9}, 
   3.6125231720258975`*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"namespace", "=", "\"\<proxi_opt\>\""}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6040887723309727`*^9, 3.604088807868812*^9}, 
   3.604088889682337*^9, {3.60408892148083*^9, 3.6040889217176323`*^9}, 
   3.6125231772884235`*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"ToCpp`LoadTemplate", "[", 
    RowBox[{"FileNameJoin", "[", 
     RowBox[{"{", 
      RowBox[{"UtilPath", ",", "\"\<expressions.tpl\>\""}], "}"}], "]"}], 
    "]"}], ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.604088874363545*^9, 3.604088893722806*^9}, 
   3.6125231756642613`*^9}],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{
   RowBox[{"ToCppGenerateFiles", "[", 
    RowBox[{"\"\<expr/desired\>\"", ",", "namespace", ",", "defSet"}], "]"}], 
   ";"}], "*)"}]], "Input",
 CellChangeTimes->{{3.6040888157294407`*^9, 3.60408882733364*^9}, {
   3.6040888629685907`*^9, 3.6040888673862553`*^9}, 3.6040889339703293`*^9, 
   3.612523173904085*^9}],

Cell["\<\
(*<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
   xmlns:cc=\"http://creativecommons.org/ns#\"
   xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"
   xmlns:svg=\"http://www.w3.org/2000/svg\"
   xmlns=\"http://www.w3.org/2000/svg\"
   xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"
   xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"
   width=\"389.49652\"
   height=\"204.51654\"
   id=\"svg2\"
   version=\"1.1\"
   inkscape:version=\"0.48.3.1 r9886\"
   sodipodi:docname=\"planar-projection-rotation-jazz.svg\">
  <defs
     id=\"defs4\">
    <marker
       inkscape:stockid=\"Arrow1Mend\"
       orient=\"auto\"
       refY=\"0.0\"
       refX=\"0.0\"
       id=\"Arrow1Mend\"
       style=\"overflow:visible;\">
      <path
         id=\"path3923\"
         d=\"M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z \"
         style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;\"
         transform=\"scale(0.4) rotate(180) translate(10,0)\" />
    </marker>
    <marker
       inkscape:stockid=\"Arrow2Lend\"
       orient=\"auto\"
       refY=\"0\"
       refX=\"0\"
       id=\"Arrow2Lend\"
       style=\"overflow:visible\">
      <path
         id=\"path3935\"
         style=\"fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round\"
         d=\"M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 \
c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z\"
         transform=\"matrix(-1.1,0,0,-1.1,-1.1,0)\"
         inkscape:connector-curvature=\"0\" />
    </marker>
    <marker
       inkscape:stockid=\"Arrow2Lend\"
       orient=\"auto\"
       refY=\"0\"
       refX=\"0\"
       id=\"Arrow2Lend-4\"
       style=\"overflow:visible\">
      <path
         inkscape:connector-curvature=\"0\"
         id=\"path3935-0\"
         style=\"fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round\"
         d=\"M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 \
c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z\"
         transform=\"matrix(-1.1,0,0,-1.1,-1.1,0)\" />
    </marker>
    <marker
       inkscape:stockid=\"Arrow2Lend\"
       orient=\"auto\"
       refY=\"0\"
       refX=\"0\"
       id=\"Arrow2Lend-2\"
       style=\"overflow:visible\">
      <path
         id=\"path3935-7\"
         style=\"fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round\"
         d=\"M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 \
c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z\"
         transform=\"matrix(-1.1,0,0,-1.1,-1.1,0)\"
         inkscape:connector-curvature=\"0\" />
    </marker>
  </defs>
  <sodipodi:namedview
     id=\"base\"
     pagecolor=\"#ffffff\"
     bordercolor=\"#666666\"
     borderopacity=\"1.0\"
     inkscape:pageopacity=\"0.0\"
     inkscape:pageshadow=\"2\"
     inkscape:zoom=\"0.98994949\"
     inkscape:cx=\"56.160092\"
     inkscape:cy=\"-31.918021\"
     inkscape:document-units=\"px\"
     inkscape:current-layer=\"layer1\"
     showgrid=\"true\"
     inkscape:snap-grids=\"false\"
     inkscape:snap-midpoints=\"false\"
     inkscape:snap-object-midpoints=\"false\"
     inkscape:snap-center=\"false\"
     inkscape:window-width=\"1920\"
     inkscape:window-height=\"1004\"
     inkscape:window-x=\"0\"
     inkscape:window-y=\"24\"
     inkscape:window-maximized=\"1\"
     fit-margin-top=\"10\"
     fit-margin-left=\"10\"
     fit-margin-right=\"10\"
     fit-margin-bottom=\"10\">
    <inkscape:grid
       type=\"xygrid\"
       id=\"grid2985\"
       empspacing=\"5\"
       visible=\"true\"
       enabled=\"true\"
       snapvisiblegridlinesonly=\"true\"
       originx=\"-36.42853px\"
       originy=\"-500.12702px\" />
  </sodipodi:namedview>
  <metadata
     id=\"metadata7\">
    <rdf:RDF>
      <cc:Work
         rdf:about=\"\">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label=\"Layer 1\"
     inkscape:groupmode=\"layer\"
     id=\"layer1\"
     transform=\"translate(-36.42853,-347.71862)\">
    <g
       id=\"g4812\"
       transform=\"translate(197.98989,38.385797)\">
      <g
         id=\"g3092\">
        <path
           style=\"fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:\
butt;stroke-linejoin:miter;stroke-opacity:1\"
           d=\"m 110,342.36218 0,90\"
           id=\"path2987\"
           inkscape:connector-curvature=\"0\" />
        <path
           style=\"fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:\
butt;stroke-linejoin:miter;stroke-opacity:1\"
           d=\"m 200,432.36218 -90,0\"
           id=\"path2987-4\"
           inkscape:connector-curvature=\"0\" />
        <path
           style=\"fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:\
butt;stroke-linejoin:miter;stroke-opacity:1\"
           d=\"M 110,430.93101 70.000001,493.79335\"
           id=\"path2987-3\"
           inkscape:connector-curvature=\"0\" />
      </g>
      <text
         sodipodi:linespacing=\"125%\"
         id=\"text3097\"
         y=\"437.41293\"
         x=\"208.98985\"
         style=\"font-size:16px;font-style:normal;font-weight:normal;line-\
height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;\
stroke:none;font-family:Sans\"
         xml:space=\"preserve\"><tspan
           y=\"437.41293\"
           x=\"208.98985\"
           id=\"tspan3099\"
           sodipodi:role=\"line\">x</tspan></text>
      <text
         sodipodi:linespacing=\"125%\"
         id=\"text3132\"
         y=\"503.84937\"
         x=\"58.588848\"
         style=\"font-size:16px;font-style:normal;font-weight:normal;line-\
height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;\
stroke:none;font-family:Sans\"
         xml:space=\"preserve\"><tspan
           y=\"503.84937\"
           x=\"58.588848\"
           id=\"tspan3134\"
           sodipodi:role=\"line\">z</tspan></text>
      <text
         sodipodi:linespacing=\"125%\"
         id=\"text3136\"
         y=\"328.08282\"
         x=\"105.05586\"
         style=\"font-size:16px;font-style:normal;font-weight:normal;line-\
height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;\
stroke:none;font-family:Sans\"
         xml:space=\"preserve\"><tspan
           y=\"328.08282\"
           x=\"105.05586\"
           id=\"tspan3138\"
           sodipodi:role=\"line\">y</tspan></text>
      <path
         transform=\"matrix(-0.55218762,0,0,0.55314953,131.70749,209.06839)\"
         sodipodi:open=\"true\"
         sodipodi:end=\"5.1490162\"
         sodipodi:start=\"0\"
         d=\"m 109.09648,468.49402 c 0,13.3894 -10.854262,24.24366 \
-24.243666,24.24366 -13.389405,0 -24.243662,-10.85426 -24.243662,-24.24366 \
0,-13.38941 10.854257,-24.24366 24.243662,-24.24366 3.542562,0 \
7.042083,0.77636 10.252293,2.27446\"
         sodipodi:ry=\"24.243662\"
         sodipodi:rx=\"24.243662\"
         sodipodi:cy=\"468.49402\"
         sodipodi:cx=\"84.852814\"
         id=\"path3140\"
         style=\"color:#000000;fill:none;stroke:#000000;stroke-width:1.\
80940342;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-\
opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:\
url(#Arrow2Lend);visibility:visible;display:inline;overflow:visible;enable-\
background:accumulate\"
         sodipodi:type=\"arc\" />
    </g>
    <g
       id=\"g4799\"
       transform=\"translate(-324.25897,36.365489)\">
      <g
         id=\"g3087\">
        <path
           style=\"fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:\
butt;stroke-linejoin:miter;stroke-opacity:1\"
           d=\"m 380,343.79335 0,90\"
           id=\"path2987-40\"
           inkscape:connector-curvature=\"0\" />
        <path
           style=\"fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:\
butt;stroke-linejoin:miter;stroke-opacity:1\"
           d=\"m 470,433.79335 -90,0\"
           id=\"path2987-4-6\"
           inkscape:connector-curvature=\"0\" />
        <path
           style=\"fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:\
butt;stroke-linejoin:miter;stroke-opacity:1\"
           d=\"m 420,372.36218 -40,62.86234\"
           id=\"path2987-3-0\"
           inkscape:connector-curvature=\"0\" />
        <text
           sodipodi:linespacing=\"125%\"
           id=\"text3101\"
           y=\"432.36218\"
           x=\"480\"
           style=\"font-size:16px;font-style:normal;font-weight:normal;line-\
height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;\
stroke:none;font-family:Sans\"
           xml:space=\"preserve\"><tspan
             y=\"432.36218\"
             x=\"480\"
             id=\"tspan3103\"
             sodipodi:role=\"line\">x</tspan></text>
        <text
           sodipodi:linespacing=\"125%\"
           id=\"text3105\"
           y=\"362.36218\"
           x=\"420\"
           style=\"font-size:16px;font-style:normal;font-weight:normal;line-\
height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;\
stroke:none;font-family:Sans\"
           xml:space=\"preserve\"><tspan
             y=\"362.36218\"
             x=\"420\"
             id=\"tspan3107\"
             sodipodi:role=\"line\">y</tspan></text>
        <text
           sodipodi:linespacing=\"125%\"
           id=\"text3109\"
           y=\"332.36218\"
           x=\"370\"
           style=\"font-size:16px;font-style:normal;font-weight:normal;line-\
height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;\
stroke:none;font-family:Sans\"
           xml:space=\"preserve\"><tspan
             y=\"332.36218\"
             x=\"370\"
             id=\"tspan3111\"
             sodipodi:role=\"line\">z</tspan></text>
      </g>
      <path
         transform=\"matrix(0.55218762,0,0,0.55314953,353.16574,143.04173)\"
         sodipodi:open=\"true\"
         sodipodi:end=\"5.1490162\"
         sodipodi:start=\"0\"
         d=\"m 109.09648,468.49402 c 0,13.3894 -10.854262,24.24366 \
-24.243666,24.24366 -13.389405,0 -24.243662,-10.85426 -24.243662,-24.24366 \
0,-13.38941 10.854257,-24.24366 24.243662,-24.24366 3.542562,0 \
7.042083,0.77636 10.252293,2.27446\"
         sodipodi:ry=\"24.243662\"
         sodipodi:rx=\"24.243662\"
         sodipodi:cy=\"468.49402\"
         sodipodi:cx=\"84.852814\"
         id=\"path3140-0\"
         style=\"color:#000000;fill:none;stroke:#000000;stroke-width:1.\
80940342;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-\
opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:\
url(#Arrow2Lend);visibility:visible;display:inline;overflow:visible;enable-\
background:accumulate\"
         sodipodi:type=\"arc\" />
    </g>
  </g>
</svg>
*)\
\>", "Input",
 CellChangeTimes->{{3.61252314044874*^9, 3.6125231404577413`*^9}}]
}, Closed]]
},
WindowSize->{1366, 686},
WindowMargins->{{-8, Automatic}, {Automatic, -8}},
PrivateNotebookOptions->{"VersionedStylesheet"->{"Default.nb"[8.] -> True}},
ShowSelection->True,
CellContext->"Redo`",
Magnification->1.3000000715255737`,
FrontEndVersion->"10.0 for Microsoft Windows (64-bit) (September 9, 2014)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[422, 15, 146, 2, 91, "Section"],
Cell[CellGroupData[{
Cell[593, 21, 99, 1, 820, "Subsection"],
Cell[CellGroupData[{
Cell[717, 26, 376, 5, 497, "Item"],
Cell[1096, 33, 462, 8, 497, "Item"],
Cell[1561, 43, 287, 6, 497, "Item"],
Cell[1851, 51, 218, 3, 497, "Item"],
Cell[2072, 56, 215, 3, 497, "Item"],
Cell[2290, 61, 207, 3, 497, "Item"],
Cell[2500, 66, 220, 3, 497, "Item"],
Cell[2723, 71, 210, 3, 497, "Item"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[2982, 80, 100, 1, 820, "Subsection"],
Cell[CellGroupData[{
Cell[3107, 85, 438, 7, 497, "Item"],
Cell[3548, 94, 397, 7, 497, "Item"],
Cell[3948, 103, 343, 6, 497, "Item"],
Cell[4294, 111, 519, 9, 497, "Item"],
Cell[4816, 122, 206, 2, 497, "Item"]
}, Open  ]],
Cell[CellGroupData[{
Cell[5059, 129, 50644, 835, 5580, "Input"],
Cell[55706, 966, 51389, 846, 70, "Output"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[107144, 1818, 109, 1, 820, "Subsection"],
Cell[107256, 1821, 435, 7, 1062, "Text"],
Cell[CellGroupData[{
Cell[107716, 1832, 142, 2, 497, "Item"],
Cell[107861, 1836, 123, 1, 497, "Item"],
Cell[107987, 1839, 88, 1, 497, "Item"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[108124, 1846, 105, 1, 820, "Subsection"],
Cell[108232, 1849, 276, 5, 646, "Text"]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[108557, 1860, 98, 1, 50, "Section"],
Cell[CellGroupData[{
Cell[108680, 1865, 603, 16, 109, "Input"],
Cell[109286, 1883, 1765, 24, 70, "Output"]
}, Open  ]],
Cell[111066, 1910, 638, 16, 169, "Input"],
Cell[111707, 1928, 78, 2, 48, "Input"],
Cell[CellGroupData[{
Cell[111810, 1934, 97, 1, 61, "Subsection"],
Cell[111910, 1937, 419, 12, 79, "Input"],
Cell[112332, 1951, 1281, 33, 288, "Input"],
Cell[113616, 1986, 658, 17, 169, "Input"],
Cell[114277, 2005, 471, 11, 139, "Input"],
Cell[114751, 2018, 1954, 53, 348, "Input"],
Cell[116708, 2073, 1356, 36, 348, "Input"],
Cell[CellGroupData[{
Cell[118089, 2113, 114, 1, 44, "Subsubsection"],
Cell[118206, 2116, 995, 23, 79, "Input"],
Cell[119204, 2141, 528, 13, 48, "Input"],
Cell[119735, 2156, 271, 5, 48, "Input"],
Cell[CellGroupData[{
Cell[120031, 2165, 575, 13, 79, "Input"],
Cell[120609, 2180, 1994, 27, 70, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[122640, 2212, 715, 10, 48, "Input"],
Cell[123358, 2224, 1884, 26, 70, "Output"]
}, Open  ]]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[125315, 2258, 184, 2, 83, "Section"],
Cell[125502, 2262, 552, 10, 61, "Input"],
Cell[CellGroupData[{
Cell[126079, 2276, 178, 2, 47, "Subsection"],
Cell[CellGroupData[{
Cell[126282, 2282, 6019, 104, 299, "Input"],
Cell[132304, 2388, 1065, 23, 84, "Output"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[133418, 2417, 99, 1, 47, "Subsection"],
Cell[CellGroupData[{
Cell[133542, 2422, 559, 14, 61, "Input"],
Cell[134104, 2438, 831, 11, 37, "Output"]
}, Open  ]],
Cell[134950, 2452, 537, 12, 46, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[135524, 2469, 97, 1, 47, "Subsection"],
Cell[135624, 2472, 356, 9, 37, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[136017, 2486, 101, 1, 47, "Subsection"],
Cell[136121, 2489, 577, 15, 84, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[136735, 2509, 103, 1, 47, "Subsection"],
Cell[136841, 2512, 233, 3, 37, "Text"],
Cell[CellGroupData[{
Cell[137099, 2519, 3405, 81, 264, "Input"],
Cell[140507, 2602, 701, 23, 56, "Output"]
}, Open  ]],
Cell[141223, 2628, 603, 19, 98, "Input"],
Cell[141829, 2649, 1300, 22, 222, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[143166, 2676, 101, 1, 47, "Subsection"],
Cell[143270, 2679, 767, 19, 130, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[144074, 2703, 94, 1, 47, "Subsection"],
Cell[144171, 2706, 104, 1, 37, "Text"],
Cell[144278, 2709, 1373, 37, 111, "Input"],
Cell[145654, 2748, 335, 6, 37, "Text"],
Cell[145992, 2756, 627, 15, 42, "Input"],
Cell[CellGroupData[{
Cell[146644, 2775, 123, 2, 37, "Input"],
Cell[146770, 2779, 3692, 67, 61, "Output"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[150511, 2852, 178, 2, 61, "Subsection"],
Cell[150692, 2856, 276, 6, 37, "Text"],
Cell[CellGroupData[{
Cell[150993, 2866, 1437, 36, 61, "Input"],
Cell[152433, 2904, 2888, 41, 56, "Output"],
Cell[155324, 2947, 2893, 41, 56, "Output"]
}, Open  ]]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[158278, 2995, 105, 1, 118, "Section"],
Cell[158386, 2998, 228, 4, 48, "Text"],
Cell[158617, 3004, 379, 8, 107, "Text"],
Cell[CellGroupData[{
Cell[159021, 3016, 158, 2, 37, "Item"],
Cell[159182, 3020, 146, 1, 37, "Item"],
Cell[159331, 3023, 141, 1, 37, "Item"],
Cell[159475, 3026, 150, 2, 37, "Item"]
}, Open  ]],
Cell[159640, 3031, 88, 1, 48, "Text"],
Cell[CellGroupData[{
Cell[159753, 3036, 156, 2, 37, "Item"],
Cell[159912, 3040, 242, 7, 37, "Item"],
Cell[160157, 3049, 244, 7, 37, "Item"]
}, Open  ]],
Cell[CellGroupData[{
Cell[160438, 3061, 94, 1, 47, "Subsection"],
Cell[160535, 3064, 590, 17, 61, "Input"],
Cell[161128, 3083, 712, 19, 61, "Input"],
Cell[CellGroupData[{
Cell[161865, 3106, 331, 9, 61, "Input"],
Cell[162199, 3117, 1475, 40, 37, "Output"]
}, Open  ]],
Cell[163689, 3160, 435, 9, 61, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[164161, 3174, 152, 2, 47, "Subsection"],
Cell[164316, 3178, 2086, 44, 222, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[166439, 3227, 168, 2, 47, "Subsection"],
Cell[166610, 3231, 2208, 48, 222, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[168855, 3284, 107, 1, 47, "Subsection"],
Cell[CellGroupData[{
Cell[168987, 3289, 5629, 128, 406, "Input"],
Cell[174619, 3419, 2934, 83, 85, "Output"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[177602, 3508, 115, 1, 47, "Subsection"],
Cell[177720, 3511, 322, 9, 40, "Input"],
Cell[CellGroupData[{
Cell[178067, 3524, 2118, 59, 255, "Input"],
Cell[180188, 3585, 648, 11, 37, "Output"]
}, Open  ]],
Cell[180851, 3599, 342, 9, 39, "Input"],
Cell[CellGroupData[{
Cell[181218, 3612, 108, 1, 34, "Subsubsection"],
Cell[CellGroupData[{
Cell[181351, 3617, 1535, 37, 205, "Input"],
Cell[182889, 3656, 838, 14, 37, "Output"],
Cell[183730, 3672, 658, 10, 37, "Output"]
}, Open  ]],
Cell[184403, 3685, 749, 19, 61, "Input"]
}, Open  ]]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[185213, 3711, 105, 1, 118, "Section"],
Cell[CellGroupData[{
Cell[185343, 3716, 96, 1, 47, "Subsection"],
Cell[CellGroupData[{
Cell[185464, 3721, 703, 20, 61, "Input"],
Cell[186170, 3743, 3129, 45, 37, "Output"],
Cell[189302, 3790, 3129, 45, 37, "Output"]
}, Open  ]],
Cell[192446, 3838, 771, 21, 37, "Input"],
Cell[193220, 3861, 916, 26, 61, "Input"],
Cell[CellGroupData[{
Cell[194161, 3891, 809, 24, 37, "Input"],
Cell[194973, 3917, 3273, 97, 84, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[198283, 4019, 2434, 67, 291, "Input"],
Cell[200720, 4088, 4147, 78, 61, "Output"]
}, Open  ]],
Cell[204882, 4169, 912, 24, 157, "Input"],
Cell[CellGroupData[{
Cell[205819, 4197, 322, 8, 37, "Input"],
Cell[206144, 4207, 3209, 48, 37, "Output"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[209402, 4261, 94, 1, 47, "Subsection"],
Cell[209499, 4264, 563, 17, 37, "Input"],
Cell[210065, 4283, 661, 19, 37, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[210763, 4307, 99, 1, 47, "Subsection"],
Cell[210865, 4310, 746, 21, 134, "Input"],
Cell[211614, 4333, 5813, 155, 401, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[217464, 4493, 92, 1, 47, "Subsection"],
Cell[217559, 4496, 1477, 32, 61, "Input"],
Cell[219039, 4530, 479, 15, 61, "Input"],
Cell[CellGroupData[{
Cell[219543, 4549, 202, 4, 34, "Subsubsection"],
Cell[219748, 4555, 969, 27, 37, "Input"],
Cell[220720, 4584, 1473, 39, 61, "Input"],
Cell[222196, 4625, 403, 12, 37, "Input"],
Cell[222602, 4639, 1725, 41, 84, "Input"],
Cell[224330, 4682, 378, 8, 37, "Input"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[224757, 4696, 171, 2, 47, "Subsection"],
Cell[224931, 4700, 957, 16, 37, "Input"],
Cell[225891, 4718, 1507, 38, 84, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[227435, 4761, 153, 2, 47, "Subsection"],
Cell[227591, 4765, 1117, 33, 86, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[228745, 4803, 113, 1, 47, "Subsection"],
Cell[228861, 4806, 1852, 53, 171, "Input"],
Cell[CellGroupData[{
Cell[230738, 4863, 235, 6, 37, "Input"],
Cell[230976, 4871, 1571, 24, 37, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[232584, 4900, 186, 5, 39, "Input"],
Cell[232773, 4907, 672, 15, 37, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[233482, 4927, 345, 6, 37, "Input"],
Cell[233830, 4935, 6188, 180, 189, "Output"]
}, Open  ]]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[240079, 5122, 98, 1, 91, "Section"],
Cell[240180, 5125, 545, 15, 37, "Input"],
Cell[240728, 5142, 316, 8, 37, "Input"],
Cell[241047, 5152, 2390, 65, 249, "Input"],
Cell[CellGroupData[{
Cell[243462, 5221, 920, 26, 37, "Input"],
Cell[244385, 5249, 9126, 220, 263, "Output"]
}, Open  ]],
Cell[253526, 5472, 302, 9, 37, "Input"],
Cell[253831, 5483, 1890, 52, 84, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[255758, 5540, 100, 1, 91, "Section"],
Cell[255861, 5543, 238, 6, 61, "Input"],
Cell[256102, 5551, 1229, 31, 176, "Input"],
Cell[257334, 5584, 360, 8, 37, "Input"],
Cell[257697, 5594, 14942, 254, 273, "Text"],
Cell[CellGroupData[{
Cell[272664, 5852, 1376, 36, 84, "Input"],
Cell[274043, 5890, 2948, 53, 37, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[277028, 5948, 624, 17, 84, "Input"],
Cell[277655, 5967, 1338, 19, 37, "Output"]
}, Open  ]],
Cell[279008, 5989, 349, 9, 37, "Input"],
Cell[279360, 6000, 3691, 83, 498, "Input"],
Cell[283054, 6085, 2350, 47, 360, "Input"],
Cell[CellGroupData[{
Cell[285429, 6136, 313, 7, 37, "Input"],
Cell[285745, 6145, 339, 8, 29, "Message"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[286133, 6159, 95, 1, 118, "Section"],
Cell[CellGroupData[{
Cell[286253, 6164, 106, 1, 820, "Subsection"],
Cell[286362, 6167, 877, 21, 733, "Input"],
Cell[287242, 6190, 872, 20, 646, "Input"],
Cell[288117, 6212, 384, 12, 646, "Input"],
Cell[288504, 6226, 280, 6, 646, "Input"],
Cell[288787, 6234, 248, 6, 696, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[289072, 6245, 102, 1, 820, "Subsection"],
Cell[289177, 6248, 4383, 105, 5733, "Input"],
Cell[293563, 6355, 297, 8, 646, "Input"],
Cell[293863, 6365, 1493, 27, 1483, "Input"],
Cell[295359, 6394, 116, 2, 646, "Input"],
Cell[295478, 6398, 224, 4, 646, "Input"],
Cell[295705, 6404, 834, 20, 1066, "Input"],
Cell[296542, 6426, 658, 11, 646, "Input"],
Cell[297203, 6439, 315, 8, 646, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[297555, 6452, 152, 2, 820, "Subsection"],
Cell[297710, 6456, 811, 15, 646, "Input"],
Cell[298524, 6473, 743, 14, 646, "Input"],
Cell[299270, 6489, 616, 11, 646, "Input"],
Cell[299889, 6502, 380, 11, 646, "Input"],
Cell[300272, 6515, 314, 8, 646, "Input"]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[300635, 6529, 111, 1, 50, "Section"],
Cell[300749, 6532, 1810, 50, 130, "Input"],
Cell[302562, 6584, 1081, 31, 86, "Input"],
Cell[303646, 6617, 286, 8, 37, "Input"],
Cell[303935, 6627, 341, 7, 84, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[304313, 6639, 113, 1, 91, "Section"],
Cell[CellGroupData[{
Cell[304451, 6644, 104, 2, 37, "Input"],
Cell[304558, 6648, 2141, 30, 37, "Output"]
}, Open  ]],
Cell[306714, 6681, 178, 4, 37, "Input"],
Cell[306895, 6687, 942, 18, 107, "Input"],
Cell[307840, 6707, 1480, 29, 130, "Input"],
Cell[309323, 6738, 266, 6, 37, "Input"],
Cell[309592, 6746, 1375, 32, 248, "Input"],
Cell[310970, 6780, 1257, 22, 107, "Input"],
Cell[312230, 6804, 195, 5, 37, "Input"],
Cell[312428, 6811, 1011, 18, 130, "Input"],
Cell[313442, 6831, 1703, 36, 248, "Input"],
Cell[315148, 6869, 750, 18, 107, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[315935, 6892, 91, 1, 118, "Section"],
Cell[CellGroupData[{
Cell[316051, 6897, 113, 1, 820, "Subsection"],
Cell[316167, 6900, 1513, 35, 2717, "Input"],
Cell[317683, 6937, 704, 19, 1066, "Input"],
Cell[318390, 6958, 975, 31, 1066, "Input"],
Cell[319368, 6991, 438, 13, 646, "Input"],
Cell[319809, 7006, 798, 22, 646, "Input"],
Cell[320610, 7030, 151, 3, 646, "Input"],
Cell[320764, 7035, 459, 11, 1066, "Input"]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[321272, 7052, 158, 2, 65, "Section"],
Cell[CellGroupData[{
Cell[321455, 7058, 120, 1, 820, "Subsection"],
Cell[321578, 7061, 598, 14, 676, "Input"],
Cell[322179, 7077, 619, 15, 646, "Input"],
Cell[322801, 7094, 420, 10, 646, "Input"]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[323270, 7110, 234, 3, 50, "Section"],
Cell[323507, 7115, 477, 12, 84, "Input"],
Cell[323987, 7129, 5842, 149, 404, "Input"],
Cell[CellGroupData[{
Cell[329854, 7282, 937, 19, 84, "Input"],
Cell[330794, 7303, 947, 15, 37, "Output"]
}, Open  ]],
Cell[331756, 7321, 1771, 40, 157, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[333564, 7366, 162, 2, 91, "Section"],
Cell[333729, 7370, 233, 5, 37, "Input"],
Cell[333965, 7377, 770, 13, 84, "Input"],
Cell[CellGroupData[{
Cell[334760, 7394, 102, 1, 47, "Subsection"],
Cell[334865, 7397, 1065, 18, 107, "Input"],
Cell[335933, 7417, 413, 10, 61, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[336383, 7432, 103, 1, 47, "Subsection"],
Cell[CellGroupData[{
Cell[336511, 7437, 33, 0, 37, "Input"],
Cell[336547, 7439, 666, 11, 37, "Output"]
}, Open  ]],
Cell[337228, 7453, 1607, 38, 341, "Input"],
Cell[CellGroupData[{
Cell[338860, 7495, 1480, 34, 245, "Input"],
Cell[340343, 7531, 9728, 269, 196, "Output"],
Cell[350074, 7802, 9726, 269, 196, "Output"]
}, Open  ]],
Cell[359815, 8074, 197, 3, 37, "Input"],
Cell[360015, 8079, 168, 2, 37, "Input"],
Cell[CellGroupData[{
Cell[360208, 8085, 3796, 74, 199, "Input"],
Cell[364007, 8161, 855, 14, 37, "Output"]
}, Open  ]],
Cell[364877, 8178, 1352, 38, 155, "Input"],
Cell[366232, 8218, 1106, 30, 109, "Input"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[367387, 8254, 98, 1, 91, "Section"],
Cell[367488, 8257, 393, 12, 646, "Input"],
Cell[367884, 8271, 390, 11, 733, "Input"],
Cell[368277, 8284, 779, 19, 2306, "Input"],
Cell[369059, 8305, 286, 6, 646, "Input"],
Cell[369348, 8313, 337, 9, 646, "Input"],
Cell[369688, 8324, 357, 8, 646, "Input"],
Cell[370048, 8334, 11105, 304, 92643, "Input"]
}, Closed]]
}
]
*)

